UNPKG

mi-auth-client

Version:
130 lines (129 loc) 3.77 kB
export declare type ID = number; export declare type Token = string; export interface UserRegisterInfo { username: string; email: string; password: string; role: string; platform: string[]; advertisers?: ID[]; } export interface updateUser { username: string; role: string; platform: string[]; password?: string; brand?: number[]; advertisers?: number[]; } export interface User { id?: ID; username: string; email: string; role: string; platform: string[]; password?: string; brand?: Brand[]; advertisers?: Advertiser[]; } export interface UserPermissionLogin { jwt: Token; user: User; } export interface updateRole { id: ID; name: string; permissions: string[]; } export interface Role { id: ID; name: string; permissions?: Object[]; nb_users?: number; } export interface Brand { id?: ID; name: string; advertisers?: Advertiser[]; owners?: BrandOwner[]; manager?: BrandOwner[]; } export declare type BrandOwner = { id?: ID; username?: string; email?: string; role?: string; platform?: string[]; }; export interface updateBrand { id?: ID; name: string; advertisers?: number[]; owners?: number[]; manager?: number[]; disabled?: boolean; } export interface Advertiser { id?: ID; name: string; brand: ID; users?: User[]; } export interface Platform { id?: ID; name: string; } export interface updateAdvertiser { id?: ID; name?: string; brand?: ID; users?: number[]; disabled?: boolean; } export interface result { data: any; error: any; } export interface ClientTool { login(name: string, password: string): Promise<result>; getMe(token: Token): Promise<result>; createUser(token: Token, profile: UserRegisterInfo): Promise<result>; listUsers(token: Token, params: listParams, options?: sortParams): Promise<result>; updateUser(token: Token, id: ID, profile: updateUser): Promise<result>; deleteUser(token: Token, id: ID): Promise<result>; deleteSuperAdmin?(token: Token, brand: ID, advertisers: ID[]): void; deleteManager?(token: Token, brand: ID, advertisers: ID[]): void; addBrandOwner?(token: Token, owner: ID[], advertisers: ID[]): void; addBrandManager?(token: Token, owner: ID[], advertisers: ID[]): void; listRoles(token: Token): Promise<Role[]>; createRole?(token: Token, params: updateRole): Promise<result>; updateRole?(token: Token, params: updateRole): Promise<result>; deleteRole?(token: Token, id: ID): Promise<result>; listPlatforms?(token: Token): Promise<Platform[]>; createBrand(token: Token, profile: updateBrand): Promise<result>; listBrands(token: Token, params: Pick<listParams, "ids" | "disabled">, options?: sortParams): Promise<result>; updateBrand(token: Token, id: ID, profile: updateBrand): Promise<result>; deleteBrand(token: Token, id: ID): Promise<result>; createAdvertiser(token: Token, profile: updateAdvertiser): Promise<result>; listAdvertisers(token: Token, params: Pick<listParams, "ids" | "brands" | "disabled">, options?: sortParams): Promise<result>; updateAdvertiser(token: Token, id: ID, profile: updateAdvertiser): Promise<result>; deleteAdvertiser(token: Token, id: ID): Promise<result>; } export interface ClientToolParams { url?: string; mock?: boolean; } export interface listParams { ids?: ID[]; brands?: ID[]; advertisers?: ID[]; roles?: string[]; disabled?: boolean; } declare type sortKey = 'created_at' | 'updated_at' | 'id' | 'name' | 'username'; declare type Sort = Map<sortKey, 1 | -1>; export interface sortParams { sort?: Sort; limit?: number; } export {};