@ixo/supamoto-bot-sdk
Version:
An SDK to easily interact with Supamoto bot db
343 lines (342 loc) • 15.5 kB
TypeScript
import { PoolClient } from 'pg';
import { IClaim, ICustomer, PoolConfig } from '../types/db';
export declare function createDatabaseClient(params: PoolConfig, key: string): {
client: any;
transaction: (fn: (client: PoolClient) => Promise<void>) => Promise<void>;
query: (fn: (client: any) => Promise<any>) => Promise<any>;
claims: {
v1: {
selectClaim: (params: {
claimId: string;
}, client?: PoolClient) => Promise<IClaim>;
selectClaims: (params: {
claimIds: string[];
}, client?: PoolClient) => Promise<import("../types/db").IClaims>;
selectClaimsByCustomerId: (params: {
customerId: string;
}, client?: PoolClient) => Promise<import("../types/db").IClaims>;
selectClaimsByCollectionId: (params: {
collectionId: string;
}, client?: PoolClient) => Promise<import("../types/db").IClaims>;
selectClaimsByStatus: (params: {
status: IClaim["status"];
}, client?: PoolClient) => Promise<import("../types/db").IClaims>;
selectClaimsByCustomerIdAndCollectionId: (params: {
customerId: string;
collectionId: string;
}, client?: PoolClient) => Promise<import("../types/db").IClaims>;
insertClaim: (params: {
claimId: string;
customerId?: string;
collectionId: string;
status: IClaim["status"];
}, client?: PoolClient) => Promise<any>;
upsertClaim: (params: {
claimId: string;
customerId?: string;
collectionId: string;
status: IClaim["status"];
}, client?: PoolClient) => Promise<any>;
updateClaimStatus: (params: {
claimId: string;
status: IClaim["status"];
}, client?: PoolClient) => Promise<IClaim>;
updateClaimCustomerId: (params: {
claimId: string;
customerId: string;
}, client?: PoolClient) => Promise<IClaim>;
deleteClaim: (params: {
claimId: string;
}, client?: PoolClient) => Promise<any>;
};
};
config: {
v1: {
selectConfig: (params: {
id: number;
}, client?: PoolClient) => Promise<import("../types/db").IConfig>;
selectConfigs: (params: {
ids: number[];
}, client?: PoolClient) => Promise<import("../types/db").IConfigs>;
selectConfigByKey: (params: {
key: string;
}, client?: PoolClient) => Promise<import("../types/db").IConfig>;
selectConfigsByKey: (params: {
key: string;
active?: boolean;
}, client?: PoolClient) => Promise<import("../types/db").IConfigs>;
insertConfig: (params: {
key: string;
value: string;
active?: boolean;
}, client?: PoolClient) => Promise<import("../types/db").IConfig>;
};
};
customerCredentials: {
v1: {
selectCustomerCredential: (params: {
id: number;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerCredential>;
selectCustomerCredentials: (params: {
ids: number[];
}, client?: PoolClient) => Promise<import("../types/db").ICustomerCredentials>;
selectCustomerCredentialsByCustomerId: (params: {
customerId: string;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerCredentials>;
selectCustomerCredentialsByStatus: (params: {
status: string;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerCredentials>;
insertCustomerCredential: (params: {
customerId: string;
status: string;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerCredential>;
updateCustomerCredential: (params: {
id: number;
status: string;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerCredential>;
deleteCustomerCredential: (params: {
id: number;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerCredential>;
};
};
customerOnboardings: {
v1: {
selectCustomerOnboarding: (params: {
customerId: string;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerOnboarding>;
selectCustomerOnboardings: (params: {
customerIds: string[];
}, client?: PoolClient) => Promise<import("../types/db").ICustomerOnboardings>;
selectCustomerOnboardingsByStatus: (params: {
status: string;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerOnboardings>;
insertCustomerOnboarding: (params: {
customerId: string;
status: string;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerOnboarding>;
updateCustomerOnboarding: (params: {
id: number;
status: string;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerOnboarding>;
deleteCustomerOnboarding: (params: {
id: number;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerOnboarding>;
};
};
customerPhones: {
v1: {
selectCustomerPhone: (params: {
id: string;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerPhone>;
selectCustomerPhones: (params: {
ids: string[];
}, client?: PoolClient) => Promise<import("../types/db").ICustomerPhones>;
selectCustomerPhonesByCustomerId: (params: {
customerId: string;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerPhones>;
selectCustomerPhonesByPhoneId: (params: {
phoneId: string;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerPhones>;
insertCustomerPhone: (params: {
customerId: string;
phoneId: string;
isPrimary: boolean;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerPhone>;
updateCustomerPhoneIsPrimary: (params: {
id: string;
isPrimary: boolean;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerPhone>;
deleteCustomerPhone: (params: {
id: string;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerPhone>;
};
};
customers: {
v1: {
selectCustomer: (params: {
customerId: string;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerDecrypted>;
selectCustomers: (params: {
customerIds: string[];
}, client?: PoolClient) => Promise<import("../types/db").ICustomersDecrypted>;
insertCustomer: (params: {
customerId: string;
email?: string;
pin?: string;
nationalId?: string;
preferredLanguage?: string;
address?: string;
country?: string;
givenName?: string;
familyName?: string;
profileImage?: string;
status: ICustomer["status"];
errorMessage?: string;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerDecrypted>;
updateCustomer: (params: {
customerId: string;
email?: string;
pin?: string;
nationalId?: string;
preferredLanguage?: string;
address?: string;
country?: string;
givenName?: string;
familyName?: string;
profileImage?: string;
status?: ICustomer["status"];
errorMessage?: string;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerDecrypted>;
deleteCustomer: (params: {
customerId: string;
}, client?: PoolClient) => Promise<import("../types/db").ICustomerDecrypted>;
};
};
householdCredentials: {
v1: {
selectHouseholdCredential: (params: {
id: number;
}, client?: PoolClient) => Promise<import("../types/db").IHouseholdCredential>;
selectHouseholdCredentials: (params: {
ids: number[];
}, client?: PoolClient) => Promise<import("../types/db").IHouseholdCredentials>;
selectHouseholdCredentialsByHouseholdEntityDid: (params: {
householdEntityDid: string;
}, client?: PoolClient) => Promise<import("../types/db").IHouseholdCredentials>;
insertHouseholdCredential: (params: {
householdEntityDid: string;
status: string;
}, client?: PoolClient) => Promise<import("../types/db").IHouseholdCredential>;
updateHouseholdCredential: (params: {
id: number;
status: string;
}, client?: PoolClient) => Promise<import("../types/db").IHouseholdCredential>;
deleteHouseholdCredential: (params: {
id: number;
}, client?: PoolClient) => Promise<import("../types/db").IHouseholdCredential>;
};
};
householdEntities: {
v1: {
selectHouseholdEntity: (params: {
did: string;
}, client?: PoolClient) => Promise<import("../types/db").IHouseholdEntity>;
selectHouseholdEntities: (params: {
dids: string[];
}, client?: PoolClient) => Promise<import("../types/db").IHouseholdEntities>;
selectHouseholdEntitiesByIxoAccount: (params: {
ixoAccount: string;
}, client?: PoolClient) => Promise<import("../types/db").IHouseholdEntities>;
insertHouseholdEntity: (params: {
did: string;
ixoAccount: string;
matrixRoomId?: string;
}, client?: PoolClient) => Promise<import("../types/db").IHouseholdEntity>;
updateHouseholdEntity: (params: {
did: string;
ixoAccount: string;
matrixRoomId?: string;
}, client?: PoolClient) => Promise<import("../types/db").IHouseholdEntity>;
deleteHouseholdEntity: (params: {
did: string;
}, client?: PoolClient) => Promise<import("../types/db").IHouseholdEntity>;
};
};
ixoAccounts: {
v1: {
selectIxoAccount: (params: {
address: string;
}, client?: PoolClient) => Promise<import("../types/db").IIxoAccount>;
selectIxoAccounts: (params: {
addresses: string[];
}, client?: PoolClient) => Promise<import("../types/db").IIxoAccounts>;
selectIxoAccountsByCustomerId: (params: {
customerId: string;
}, client?: PoolClient) => Promise<import("../types/db").IIxoAccounts>;
selectIxoAccountsByDid: (params: {
did: string;
}, client?: PoolClient) => Promise<import("../types/db").IIxoAccounts>;
insertIxoAccount: (params: {
address: string;
did: string;
customerId: string;
encryptedMnemonic: string;
isPrimary: boolean;
}, client?: PoolClient) => Promise<import("../types/db").IIxoAccount>;
updateIxoAccount: (params: {
address: string;
did: string;
customerId: string;
encryptedMnemonic: string;
isPrimary: boolean;
}, client?: PoolClient) => Promise<import("../types/db").IIxoAccount>;
deleteIxoAccount: (params: {
address: string;
}, client?: PoolClient) => Promise<import("../types/db").IIxoAccount>;
};
};
matrixAccounts: {
v1: {
selectMatrixAccount: (params: {
address: string;
}, client?: PoolClient) => Promise<import("../types/db").IMatrixAccount>;
selectMatrixAccounts: (params: {
addresses: string[];
}, client?: PoolClient) => Promise<import("../types/db").IMatrixAccounts>;
selectMatrixAccountsByUsername: (params: {
username: string;
}, client?: PoolClient) => Promise<import("../types/db").IMatrixAccounts>;
insertMatrixAccount: (params: {
address: string;
username: string;
encryptedPassword: string;
tempEncryptedMnemonic?: string;
encryptedPin?: string;
encryptedAccessToken?: string;
roomId?: string;
}, client?: PoolClient) => Promise<import("../types/db").IMatrixAccount>;
updateMatrixAccount: (params: {
address: string;
tempEncryptedMnemonic?: string;
encryptedPin?: string;
encryptedAccessToken?: string;
roomId?: string;
}, client?: PoolClient) => Promise<import("../types/db").IMatrixAccount>;
deleteMatrixAccount: (params: {
address: string;
}, client?: PoolClient) => Promise<import("../types/db").IMatrixAccount>;
};
};
phones: {
v1: {
selectPhone: (params: {
id: string;
}, client?: PoolClient) => Promise<import("../types/db").IPhoneDecrypted>;
selectPhones: (params: {
ids: string[];
}, client?: PoolClient) => Promise<import("../types/db").IPhonesDecrypted>;
insertPhone: (params: {
phoneNumber: string;
firstSeen?: string;
lastSeen?: string;
numberOfVisits?: number;
}, client?: PoolClient) => Promise<import("../types/db").IPhoneDecrypted>;
updatePhoneLastSeen: (params: {
id: string;
lastSeen: string;
}, client?: PoolClient) => Promise<import("../types/db").IPhoneDecrypted>;
updatePhoneNumberOfVisits: (params: {
id: string;
numberOfVisits: number;
}, client?: PoolClient) => Promise<import("../types/db").IPhoneDecrypted>;
updatePhone: (params: {
id: string;
lastSeen?: string;
numberOfVisits?: number;
}, client?: PoolClient) => Promise<import("../types/db").IPhoneDecrypted>;
deletePhone: (params: {
id: string;
}, client?: PoolClient) => Promise<import("../types/db").IPhoneDecrypted>;
};
};
};