@@ -20,11 +20,11 @@ export async function getParentSurveyCode(
2020 * @returns Array<string> - The generated child survey codes
2121 * @throws {Error } - Throws SURVEY_CODE_GENERATION_ERROR if unable to generate unique codes after 3 retries
2222 */
23- export function generateUniqueChildSurveyCodes ( ) : Array < string > {
23+ export async function generateUniqueChildSurveyCodes ( ) : Promise < Array < string > > {
2424 for ( let retries = 0 ; retries < 3 ; retries ++ ) {
25- const codes = Array . from ( { length : 3 } , ( ) =>
26- generateUniqueReferralCode ( )
27- ) ;
25+ const codes = await Promise . all ( Array . from ( { length : 3 } , ( ) =>
26+ generateUniqueSurveyCode ( )
27+ ) ) ;
2828 // Enforce uniqueness within the array
2929 if ( isUniqueSurveyCodeArray ( codes ) ) {
3030 return codes ;
@@ -51,11 +51,11 @@ function isUniqueSurveyCodeArray(codes: Array<string>): boolean {
5151 * @returns string - A unique 6-character alphanumeric code in uppercase
5252 * @throws {Error } - Throws SURVEY_CODE_GENERATION_ERROR if unable to generate unique code after 3 retries
5353 */
54- export function generateUniqueReferralCode ( ) : string {
54+ export async function generateUniqueSurveyCode ( ) : Promise < string > {
5555 for ( let retries = 0 ; retries < 3 ; retries ++ ) {
5656 const code = Math . random ( ) . toString ( 36 ) . substring ( 2 , 8 ) . toUpperCase ( ) ;
5757 // Enforce individual code uniqueness
58- if ( isUniqueSurveyCode ( code ) ) {
58+ if ( await isUniqueSurveyCode ( code ) ) {
5959 return code ;
6060 }
6161 }
@@ -69,9 +69,9 @@ export function generateUniqueReferralCode(): string {
6969 * @param code - The survey code to check for uniqueness
7070 * @returns boolean - true if the code is unique, false if it already exists
7171 */
72- function isUniqueSurveyCode ( code : string ) : boolean {
72+ async function isUniqueSurveyCode ( code : string ) : Promise < boolean > {
7373 return (
74- Survey . findOne ( { surveyCode : code } ) === null &&
75- Survey . findOne ( { childSurveyCodes : { $in : [ code ] } } ) === null
74+ await Survey . findOne ( { surveyCode : code } ) === null &&
75+ await Survey . findOne ( { childSurveyCodes : { $in : [ code ] } } ) === null
7676 ) ;
7777}
0 commit comments