b5-api-client 0.0.33 → 0.0.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -20,7 +20,7 @@ declare class P2PMarketplaceAPIClient {
|
|
|
20
20
|
getOrderById(id: string, headers?: Record<string, string>): Promise<OrderResponse>;
|
|
21
21
|
createOrder(order: CreateOrderRequest, headers?: Record<string, string>): Promise<OrderResponse>;
|
|
22
22
|
takeOrder(order: TakeOrderRequest, headers?: Record<string, string>): Promise<OrderResponse>;
|
|
23
|
-
updateOrder(updateRequest: UpdateOrderRequest, headers?: Record<string, string>): Promise<
|
|
23
|
+
updateOrder(updateRequest: UpdateOrderRequest, headers?: Record<string, string>): Promise<OrderResponse>;
|
|
24
24
|
createUser(user: CreateUserRequest, headers?: Record<string, string>): Promise<UsersResponse>;
|
|
25
25
|
getUser(userId: string, headers?: Record<string, string>): Promise<UsersResponse>;
|
|
26
26
|
rateUser(rateUserRequest: RateUserRequest, headers?: Record<string, string>): Promise<any>;
|
|
@@ -342,11 +342,9 @@ class FirebaseService {
|
|
|
342
342
|
const userCredential = yield (0, auth_1.signInWithPopup)(auth, provider);
|
|
343
343
|
const user = userCredential.user;
|
|
344
344
|
const idToken = yield user.getIdToken();
|
|
345
|
-
|
|
346
|
-
const backendUser = yield this.getUserFromBackend(user.uid, idToken);
|
|
345
|
+
const backendUser = yield this.getOrCreateUserInBackend(user, idToken);
|
|
347
346
|
if (backendUser) {
|
|
348
347
|
const syncedBackendUser = yield this.ensureBackendVerification(user, backendUser, idToken);
|
|
349
|
-
// Use the new helper method
|
|
350
348
|
return this._createSuccessAuthResult(user, syncedBackendUser, AuthProvider.GOOGLE, idToken);
|
|
351
349
|
}
|
|
352
350
|
else {
|
|
@@ -580,5 +578,19 @@ class FirebaseService {
|
|
|
580
578
|
}
|
|
581
579
|
});
|
|
582
580
|
}
|
|
581
|
+
getOrCreateUserInBackend(user, idToken) {
|
|
582
|
+
var _a;
|
|
583
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
584
|
+
// Try to get existing user from backend
|
|
585
|
+
const existingUser = yield this.getUserFromBackend(user.uid, idToken);
|
|
586
|
+
if (existingUser) {
|
|
587
|
+
return existingUser;
|
|
588
|
+
}
|
|
589
|
+
// User doesn't exist, create them (first-time social sign-in)
|
|
590
|
+
const username = ((_a = user.email) === null || _a === void 0 ? void 0 : _a.split('@')[0])
|
|
591
|
+
|| `user_${user.uid.substring(0, 8)}`;
|
|
592
|
+
return this.createUserInBackend(user.uid, username, idToken);
|
|
593
|
+
});
|
|
594
|
+
}
|
|
583
595
|
}
|
|
584
596
|
exports.FirebaseService = FirebaseService;
|
package/package.json
CHANGED
|
@@ -190,9 +190,9 @@ class P2PMarketplaceAPIClient {
|
|
|
190
190
|
return this.post<OrderResponse>(url, order, headers);
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
-
public async updateOrder(updateRequest: UpdateOrderRequest, headers?: Record<string, string>): Promise<
|
|
193
|
+
public async updateOrder(updateRequest: UpdateOrderRequest, headers?: Record<string, string>): Promise<OrderResponse> {
|
|
194
194
|
const url = '/api/orders/update';
|
|
195
|
-
return this.post<
|
|
195
|
+
return this.post<OrderResponse>(url, updateRequest, headers);
|
|
196
196
|
}
|
|
197
197
|
|
|
198
198
|
public async createUser(user: CreateUserRequest, headers?: Record<string, string>): Promise<UsersResponse> {
|
|
@@ -420,11 +420,9 @@ export class FirebaseService implements LoginService {
|
|
|
420
420
|
const user = userCredential.user;
|
|
421
421
|
const idToken = await user.getIdToken();
|
|
422
422
|
|
|
423
|
-
|
|
424
|
-
const backendUser = await this.getUserFromBackend(user.uid, idToken);
|
|
423
|
+
const backendUser = await this.getOrCreateUserInBackend(user, idToken);
|
|
425
424
|
if (backendUser) {
|
|
426
425
|
const syncedBackendUser = await this.ensureBackendVerification(user, backendUser, idToken);
|
|
427
|
-
// Use the new helper method
|
|
428
426
|
return this._createSuccessAuthResult(user, syncedBackendUser, AuthProvider.GOOGLE, idToken);
|
|
429
427
|
} else {
|
|
430
428
|
return AuthResult.failure('Failed to get or create user in backend');
|
|
@@ -663,4 +661,21 @@ export class FirebaseService implements LoginService {
|
|
|
663
661
|
return null;
|
|
664
662
|
}
|
|
665
663
|
}
|
|
664
|
+
|
|
665
|
+
private async getOrCreateUserInBackend(
|
|
666
|
+
user: User,
|
|
667
|
+
idToken: string
|
|
668
|
+
): Promise<KioscoinUser | null> {
|
|
669
|
+
// Try to get existing user from backend
|
|
670
|
+
const existingUser = await this.getUserFromBackend(user.uid, idToken);
|
|
671
|
+
if (existingUser) {
|
|
672
|
+
return existingUser;
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
// User doesn't exist, create them (first-time social sign-in)
|
|
676
|
+
const username = user.email?.split('@')[0]
|
|
677
|
+
|| `user_${user.uid.substring(0, 8)}`;
|
|
678
|
+
|
|
679
|
+
return this.createUserInBackend(user.uid, username, idToken);
|
|
680
|
+
}
|
|
666
681
|
}
|