@bettr/api-client
v1.1.3
Published
Bettr Public API Client
Downloads
8
Readme
Bettr Public API Client
BettrAPIClient
for Bettr.App's Public API.
Build
yarn install # will run the build postinstall
Config
interface IAPIConfig {
baseURL: string;
apiKey: string;
apiSecret: string;
}
API (example)
Payload for authenticateUser
interface IAuthenticateUserRequestBody {
firstName: string;
lastName: string;
email: string;
acceptTerms: boolean; // required, for compliance reasons
password?: string; // optional, not checked for match
profile?: object; // optional
needsPasswordChange?: boolean; // optional
}
Response schema
Success response
interface IAuthenticateUserResponseBody {
status: ApplicationResponseStatus.Ok;
// User Id in Bettr (UUIDv4)
userId: string;
// User session data
user: IUserSessionAPIResponseData;
/*
* Bettr Access token, to be forwarded to
* authenticator
*/
accessToken: string;
/*
* can be used to authenticate the user:
* "{redirectUrl}?accessToken={accessToken}"
*/
redirectUrl: string;
/*
* Correlation Id of the response/overriden
* with the request's one if passed (UUIDv4)
*/
correlationId: string;
}
interface IUserSessionAPIResponseData {
id: string;
username: string | null;
firstName: string;
lastName: string;
fullName: string;
createdAt: string;
updatedAt: string;
enabled: boolean;
isVerified: boolean;
needsPasswordChange: boolean;
partnerId?: string;
platformToken?: string;
}
Error response
interface IErrorReponseBody {
statusCode: number;
status: ApplicationResponseStatus.Error;
message: string;
correlationId: string;
}
Using the code
import {
IAPIConfig,
getenv,
BettrAPIClient,
IAuthenticateUserRequestBody,
IAuthenticateUserResponseBody,
} from "@bettr/api-client";
import { v4 } from "uuid";
...
const config: IAPIConfig = {
baseURL: getenv("API_BASE_URL"),
apiKey: getenv("API_KEY"),
apiSecret: getenv("API_SECRET"),
};
const apiClient: BettrAPIClient = BettrAPIClient.create(config);
const correlationId: string = correlationIdFromRequest || v4();
const user: IAuthenticateUserRequestBody = userFromRequest;
const { accessToken, userId }: IAuthenticateUserResponseBody =
await apiClient.authenticateUser(user, correlationId);
For other APIs check the source.
Author
Arpad Kiss <[email protected]>
License
GNU Lesser General Public License v3.0
The code is built upon @greeneyesai/api-utils
package:
https://www.npmjs.com/package/@greeneyesai/api-utils.
© Bettr.App