feat: subscription return response updated for moveUserRequest (#39)
* feat: subscription return response updated for moveUserRequest * feat: update test cases
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
import { UserRequest } from 'src/user-request/user-request.model';
|
||||
import {
|
||||
UserRequest,
|
||||
UserRequestReorderData,
|
||||
} from 'src/user-request/user-request.model';
|
||||
import { User } from 'src/user/user.model';
|
||||
import { UserSettings } from 'src/user-settings/user-settings.model';
|
||||
import { UserEnvironment } from '../user-environment/user-environments.model';
|
||||
@@ -28,12 +31,9 @@ export type TopicDef = {
|
||||
]: UserEnvironment;
|
||||
[topic: `user_environment/${string}/deleted_many`]: number;
|
||||
[
|
||||
topic: `user_request/${string}/${
|
||||
| 'created'
|
||||
| 'updated'
|
||||
| 'deleted'
|
||||
| 'moved'}`
|
||||
topic: `user_request/${string}/${'created' | 'updated' | 'deleted'}`
|
||||
]: UserRequest;
|
||||
[topic: `user_request/${string}/${'moved'}`]: UserRequestReorderData;
|
||||
[
|
||||
topic: `user_history/${string}/${'created' | 'updated' | 'deleted'}`
|
||||
]: UserHistory;
|
||||
|
||||
@@ -33,3 +33,18 @@ export class UserRequest {
|
||||
})
|
||||
createdOn: Date;
|
||||
}
|
||||
|
||||
@ObjectType()
|
||||
export class UserRequestReorderData {
|
||||
@Field({
|
||||
description: 'User request being moved',
|
||||
})
|
||||
request: UserRequest;
|
||||
|
||||
@Field({
|
||||
description:
|
||||
'User request succeeding the request being moved in its new position',
|
||||
nullable: true,
|
||||
})
|
||||
nextRequest?: UserRequest;
|
||||
}
|
||||
|
||||
@@ -760,7 +760,7 @@ describe('UserRequestService', () => {
|
||||
|
||||
expect(mockPubSub.publish).toHaveBeenCalledWith(
|
||||
`user_request/${dbUserRequests[0].userUid}/moved`,
|
||||
userRequests[0],
|
||||
{ request: userRequests[0], nextRequest: null },
|
||||
);
|
||||
});
|
||||
test('Should resolve left if finding the requests fails', () => {
|
||||
|
||||
@@ -261,27 +261,31 @@ export class UserRequestService {
|
||||
user,
|
||||
);
|
||||
if (E.isLeft(twoRequests)) return twoRequests;
|
||||
const { request, nextRequest } = twoRequests.right;
|
||||
const { request: dbRequest, nextRequest: dbNextRequest } =
|
||||
twoRequests.right;
|
||||
|
||||
const isTypeValidate = await this.validateTypeEqualityForMoveRequest(
|
||||
srcCollID,
|
||||
destCollID,
|
||||
request,
|
||||
nextRequest,
|
||||
dbRequest,
|
||||
dbNextRequest,
|
||||
);
|
||||
if (E.isLeft(isTypeValidate)) return E.left(isTypeValidate.left);
|
||||
|
||||
const updatedRequest = await this.reorderRequests(
|
||||
srcCollID,
|
||||
request,
|
||||
dbRequest,
|
||||
destCollID,
|
||||
nextRequest,
|
||||
dbNextRequest,
|
||||
);
|
||||
if (E.isLeft(updatedRequest)) return updatedRequest;
|
||||
|
||||
const userRequest: UserRequest = this.cast(updatedRequest.right);
|
||||
|
||||
await this.pubsub.publish(`user_request/${user.uid}/moved`, userRequest);
|
||||
await this.pubsub.publish(`user_request/${user.uid}/moved`, {
|
||||
request: userRequest,
|
||||
nextRequest: dbNextRequest ? this.cast(dbNextRequest) : null,
|
||||
});
|
||||
|
||||
return E.right(userRequest);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user