UNPKG

@zenghongtu/sms-activate-org

Version:
35 lines (31 loc) 1.11 kB
import { use } from 'typescript-mix'; import { sleep } from '../../../ressources/helpers'; import { EActivationGetStatusAnswer } from '../../../ressources/status'; import { Query } from '../../query/query.module'; import { getStatus } from '../activations/routes/getStatus'; export interface waitForCode extends getStatus {} export class waitForCode { public query: Query; @use(getStatus) async waitForCode(id: string | number, tries = 180): Promise<string> { return new Promise<string>(async (resolve, reject) => { while (tries--) { const result = await this.getStatus(id); if ( result.message == EActivationGetStatusAnswer.STATUS_OK || result.message == EActivationGetStatusAnswer.STATUS_UNEXPECTED ) return resolve(result.data); if ( ![ EActivationGetStatusAnswer.STATUS_WAIT_CODE, EActivationGetStatusAnswer.STATUS_WAIT_RETRY, ].includes(result.message as any) ) return reject(result.code); await sleep(1000); } reject('EXPIRED'); }); } }