chore: completed mutation to delete a SharedRequest

This commit is contained in:
Balu Babu
2023-10-25 22:02:55 +05:30
parent d56224b17b
commit 6023ee27cf
2 changed files with 51 additions and 0 deletions

View File

@@ -88,6 +88,28 @@ export class SharedRequestResolver {
return result.right;
}
@Mutation(() => Boolean, {
description: 'Revoke a user generated shared-request',
})
@UseGuards(GqlAuthGuard)
async revokeSharedRequest(
@GqlUser() user: AuthUser,
@Args({
name: 'code',
type: () => ID,
description: 'The shared-request to resolve',
})
code: string,
) {
const result = await this.sharedRequestService.revokeSharedRequest(
code,
user.uid,
);
if (E.isLeft(result)) throwErr(result.left);
return result.right;
}
/* Subscriptions */
@Subscription(() => SharedRequest, {
description: 'Listen for shortcode creation',

View File

@@ -153,4 +153,33 @@ export class SharedRequestService {
return fetchedSharedRequests;
}
/**
* Delete a SharedRequest
*
* @param sharedRequestID SharedRequest
* @param uid User Uid
* @returns Boolean on successful deletion
*/
async revokeSharedRequest(sharedRequestID: string, uid: string) {
try {
const deletedSharedRequest = await this.prisma.shortcode.delete({
where: {
creator_uid_shortcode_unique: {
creatorUid: uid,
id: sharedRequestID,
},
},
});
this.pubsub.publish(
`shared_request/${deletedSharedRequest.creatorUid}/revoked`,
this.cast(deletedSharedRequest),
);
return E.right(true);
} catch (error) {
return E.left(SHARED_REQUEST_NOT_FOUND);
}
}
}