@viatick/jarvis-apis-sdk
v2.0.3
Published
``` Typescript import { AuthApi, Configuration } from "@viatick/jarvis-apis-sdk"; import axios, { AxiosError } from "axios";
Readme
Samples
import { AuthApi, Configuration } from "@viatick/jarvis-apis-sdk";
import axios, { AxiosError } from "axios";
export enum API_ERROR_CODE {
UNKNOWN = "UNKNOWN",
UNEXPECTED_ERROR = "UNEXPECTED_ERROR",
UNAUTHORIZED = "UNAUTHORIZED",
DATA_INVALID = "DATA_INVALID",
ID_EXISTS = "ID_EXISTS",
DATA_EXISTS = "DATA_EXISTS",
AUTHENTICATE_FAILED = "AUTHENTICATE_FAILED",
DISABLED_ACCESS = "DISABLED_ACCESS",
ACTION_DENIED = "ACTION_DENIED",
EMAIL_EXISTS = "EMAIL_EXISTS",
DATA_NOT_FOUND = "DATA_NOT_FOUND",
EXTENSION_IN_USE = "EXTENSION_IN_USE",
TWO_MANY_REQUEST = "TWO_MANY_REQUEST",
NOT_FOUND = "NOT_FOUND",
TIME_OUT = "TIME_OUT"
}
export type ApiError = AxiosError<{ rpCode: API_ERROR_CODE; message: string; extraMsg: string }>;
const defaultConfig = new Configuration({
basePath: process.env.NEW_BE_API_BASE_URL
});
export const authApi = new AuthApi(defaultConfig);
export const isApiError = (error: unknown): error is ApiError => {
return axios.isAxiosError(error) && error.response !== undefined;
};import { authApi, isApiError, API_ERROR_CODE } from "@/services/new-jarvis-api";
export async function login(username: string, password: string): Promise<{ session?: SessionPayload; error?: LoginError }> {
try {
const authData = await authApi
.authenticateAccount({
authenticateRequestDto: {
email: username,
password: password,
captchaToken: "jarvisadmin" // Assuming no captcha for simplicity
}
})
.then((response) => response.data);
// Create a session with the auth data
const session = await createSession(authData!);
return { session };
} catch (error) {
if (isApiError(error)) {
const errorCode = error.response?.data.rpCode;
if (errorCode === API_ERROR_CODE.AUTHENTICATE_FAILED) {
return { error: LoginError.INVALID_CREDENTIALS };
}
}
}
return { error: LoginError.SERVER_ERROR };
}const config = new Configuration({
basePath: BASE_PATH,
serverIndex: 1,
apiKey: () => ACCESS_TOKEN,
});
const deviceApi = new DeviceApi(config);
const response = await deviceApi.getDeviceList({
page: 1,
noRecords: 10,
});
expect(response.data).toBeDefined();