UNPKG

open-music-api-node

Version:
47 lines (38 loc) 1.49 kB
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;