chore: completed mutation to delete a SharedRequest
This commit is contained in:
@@ -88,6 +88,28 @@ export class SharedRequestResolver {
|
|||||||
return result.right;
|
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 */
|
/* Subscriptions */
|
||||||
@Subscription(() => SharedRequest, {
|
@Subscription(() => SharedRequest, {
|
||||||
description: 'Listen for shortcode creation',
|
description: 'Listen for shortcode creation',
|
||||||
|
|||||||
@@ -153,4 +153,33 @@ export class SharedRequestService {
|
|||||||
|
|
||||||
return fetchedSharedRequests;
|
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