ggez-banking-sdk
Version:
A Node.js package to handle GGEZ Banking API endpoints, Simplify the process of managing CRUD operations with this efficient and easy-to-use package.
33 lines (32 loc) • 1.95 kB
TypeScript
import { DocumentData, OrganizationData, PersonalInfo, ResetUserSecurity, UserData, UserSecurity } from "..";
import type { GiftData } from "../banking/entities/customField/promotionData/giftData";
type TEntity = UserData[keyof Pick<UserData, "addresses" | "bank_account" | "email" | "phone" | "identification">][0];
type TModifyListByEntity = <K extends TEntity>(entityList: K[], entity: K) => K[];
type TModifyByDocumentData = <K extends TEntity>(entityList: K[], entity: DocumentData) => K[];
type TModifyOrganizationByDocumentData = (organizationList: OrganizationData[], documentData: DocumentData) => OrganizationData[];
type TModifyOrganizationList = (organizationList: OrganizationData[], organization: OrganizationData) => OrganizationData[];
type TModifyProfilePicture = (personal_info: PersonalInfo, documentData: DocumentData) => PersonalInfo;
type TModifySecurity = <K extends UserSecurity>(userSecurity: K, newUserSecurity: K) => UserSecurity;
type TModifySecurityResetUserSecurity = (userSecurity: UserSecurity, resetUserSecurity: ResetUserSecurity) => UserSecurity;
export { TEntity, TModifyListByEntity, TModifyByDocumentData, TModifyOrganizationByDocumentData, TModifyOrganizationList, TModifyProfilePicture, TModifySecurityResetUserSecurity, TModifySecurity, };
type BaseEntity = {
id: number;
is_primary: number;
verification_status: number;
};
type TSortEntity = <K extends BaseEntity>(entityList: K[]) => K[];
type TBaseSortEntityBy = <K extends BaseEntity>(a: K, b: K) => number;
type TSortByIsPrimary = TBaseSortEntityBy;
type TSortByVerificationStatus = TBaseSortEntityBy;
type TSortByID = TBaseSortEntityBy;
export { TSortEntity, TSortByIsPrimary, TSortByVerificationStatus, TSortByID };
type PromotionCustomField = {
promotion_data: {
gift_data?: GiftData[];
referral_data?: {
code: string;
type: string;
};
};
};
export type { PromotionCustomField };