[client] Update local user id from invite response

This commit is contained in:
Abhishek Shroff
2025-05-27 01:46:52 +05:30
parent cd5934c71c
commit 1a76e76242
2 changed files with 17 additions and 0 deletions
@@ -93,4 +93,8 @@ class ResourceShareAction extends ResourceAction with JsonApiAction {
(action is ResourceCreateAction && action.resourceId == resourceId) ||
(action is ResourceShareAction && action.resourceId == resourceId && action.userEmail == userEmail) ||
(action is UserInviteAction && action.localId == userId);
void setUserId(int userId) {
_userId = userId;
}
}
@@ -1,4 +1,7 @@
import 'dart:async';
import 'package:offtheline/offtheline.dart';
import 'package:phylum/libphylum/actions/action_resource_share.dart';
import 'package:phylum/libphylum/actions/changes/create_user_change.dart';
import 'package:phylum/libphylum/phylum_api_types.dart';
import 'package:phylum/libphylum/responses/responses.dart';
@@ -58,4 +61,14 @@ class UserInviteAction extends PhylumAction with JsonApiAction {
@override
ResponseParser get parseResponse => (_, response) => parseJsonMapResponse(response, UserResponse.fromResponse);
@override
FutureOr<void> processResponse(ApiResponse response) async {
if (response is UserResponse) {
account.actionQueue.updateActions(
(PhylumAction action) => action is ResourceShareAction && action.userId == localId,
(action) => (action as ResourceShareAction).setUserId(response.user.id),
);
}
}
}