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<Order>;
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>;
@@ -76,4 +76,5 @@ export declare class FirebaseService implements LoginService {
76
76
  private _createSuccessAuthResult;
77
77
  private getUserFromBackend;
78
78
  private createUserInBackend;
79
+ private getOrCreateUserInBackend;
79
80
  }
@@ -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
- // Get or create user in your Kotlin backend
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "b5-api-client",
3
- "version": "0.0.33",
3
+ "version": "0.0.35",
4
4
  "description": "Escrow Backend API client",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -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<Order> {
193
+ public async updateOrder(updateRequest: UpdateOrderRequest, headers?: Record<string, string>): Promise<OrderResponse> {
194
194
  const url = '/api/orders/update';
195
- return this.post<Order>(url, updateRequest, headers);
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
- // Get or create user in your Kotlin backend
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
  }