cometchat-api
Version:
simple cometchat api methods with typescript support
86 lines (81 loc) • 2.03 kB
TypeScript
import * as axios from 'axios';
declare function useCometchatApi(config: CometchatApiConfig): {
instance: axios.AxiosInstance;
getUser: (uid: UserId) => Promise<GetUser | null>;
createUser: (json: CreateUserReq) => Promise<CreateUserRes | null>;
createToken: (uid: UserId, json?: CreateTokenReq) => Promise<CreateTokenRes | null>;
getTokens: (uid: UserId) => Promise<TokenList | null>;
};
declare type UserId = string;
interface ICometchatApiError {
error: {
message: string;
devMessage: string;
source: string;
details?: string;
code: string;
};
}
interface CometchatApiConfig {
apiKey: string;
appId: string;
region: string;
}
interface TokenList {
data: {
uid: string;
authToken: string;
createdAt: number;
}[];
meta: {
pagination: {
total: number;
count: number;
per_page: number;
current_page: number;
total_pages: number;
};
};
}
interface CreateUserReq {
uid: string;
name: string;
avatar?: string;
link?: string;
role?: string;
metadata?: string;
withAuthToken?: boolean;
tags?: string[];
}
interface CreateUserRes {
data: {
uid: string;
name: string;
status: string;
role?: string;
createdAt: number;
authToken?: string;
};
}
interface CreateTokenReq {
force?: boolean;
}
interface CreateTokenRes {
data: {
uid: string;
authToken: string;
createdAt: number;
};
}
interface GetUser {
data: {
uid: string;
name: string;
avatar: string;
status: string;
role: string;
createdAt: number;
};
}
declare function isCometchatApiError(e: unknown): e is ICometchatApiError;
export { CometchatApiConfig, CreateTokenReq, CreateTokenRes, CreateUserReq, CreateUserRes, GetUser, ICometchatApiError, TokenList, UserId, isCometchatApiError, useCometchatApi };