chore: completed mutation to delete a SharedRequest
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user