Skip to content

First Request

import { BigshipClient, isSuccessResponse } from '@agamya/bigship-sdk';
const client = new BigshipClient({
baseURL: process.env.BIGSHIP_BASE_URL!,
userName: process.env.BIGSHIP_USERNAME!,
password: process.env.BIGSHIP_PASSWORD!,
accessKey: process.env.BIGSHIP_ACCESS_KEY!,
});
// Check profile + wallet balance
const profile = await client.getProfile();
if (isSuccessResponse(profile)) {
console.log('Wallet balance:', profile.data?.userWallet?.Balance);
}

When you call getProfile():

  1. Authenticate — SDK checks for a cached token; if missing/expired, calls login endpoint
  2. Make request — Sends GET /api/outbound/profile with auth header
  3. Validate response — Parses and validates the response with Zod
  4. Dispatch hooks — Fires onResponse or onError hooks
  5. Return — Returns typed ApiResponse<ProfileData>

All methods return ApiResponse<T>:

interface ApiResponse<T> {
status: boolean;
message: string;
status_code: number;
data: T | null;
}

Use type guards to safely access data:

import { isSuccessResponse, isFailedResponse } from '@agamya/bigship-sdk';
const result = await client.getProfile();
if (isSuccessResponse(result)) {
console.log(result.data); // Typed as ProfileData
} else if (isFailedResponse(result)) {
console.error(result.message);
}