@@ -0,0 +1,27 @@
|
||||
import { savedViewSchema } from '@pokemon-inventory/validation/saved-view';
|
||||
|
||||
import { createApplicationError } from '../../../shared/errors/application-error.js';
|
||||
|
||||
export function createSavedViewService({ savedViewRepository }) {
|
||||
return {
|
||||
async list({ sellerId }) {
|
||||
return savedViewRepository.listBySellerId(sellerId);
|
||||
},
|
||||
|
||||
async create({ sellerId, view }) {
|
||||
return savedViewRepository.create(sellerId, savedViewSchema.parse(view));
|
||||
},
|
||||
|
||||
async update({ sellerId, viewId, view }) {
|
||||
const updated = await savedViewRepository.updateForSeller(viewId, sellerId, savedViewSchema.parse(view));
|
||||
if (!updated) throw createApplicationError('SAVED_VIEW_NOT_FOUND', 'Saved view was not found.', 404);
|
||||
return updated;
|
||||
},
|
||||
|
||||
async delete({ sellerId, viewId }) {
|
||||
const deleted = await savedViewRepository.deleteForSeller(viewId, sellerId);
|
||||
if (!deleted) throw createApplicationError('SAVED_VIEW_NOT_FOUND', 'Saved view was not found.', 404);
|
||||
return deleted;
|
||||
},
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user