open-music-api-node
Version:
47 lines (38 loc) • 1.49 kB
JavaScript
class CollabHandler {
constructor(collabService, playlistService, validator) {
this._collabService = collabService;
this._playlistService = playlistService;
this._validator = validator;
this.addCollaborationHandler = this.addCollaborationHandler.bind(this);
this.deleteCollaborationHandler = this.deleteCollaborationHandler.bind(this);
}
async addCollaborationHandler(request, h) {
this._validator.validateCollaborationPayload(request.payload);
const { id: credentialId } = request.auth.credentials;
const { playlistId, userId } = request.payload;
await this._playlistService.verifyPlaylistOwner(playlistId, credentialId);
const collaborationId = await
this._collabService.addCollaboration(playlistId, userId);
const response = h.response({
status: 'success',
message: 'Kolaborasi berhasil ditambahkan',
data: {
collaborationId,
},
});
response.code(201);
return response;
}
async deleteCollaborationHandler(request) {
this._validator.validateCollaborationPayload(request.payload);
const { id: credentialId } = request.auth.credentials;
const { playlistId, userId } = request.payload;
await this._playlistService.verifyPlaylistOwner(playlistId, credentialId);
await this._collabService.deleteCollaboration(playlistId, userId);
return {
status: 'success',
message: 'Kolaborasi berhasil dihapus',
};
}
}
module.exports = CollabHandler;