Files
pokemon-inventory/apps/api/src/modules/search/services/saved-view-service.js
T
fragginwagon ffd239d27c
Quality / test (push) Canceled after 0s
feat: add seller saved views
2026-09-10 01:36:15 -04:00

28 lines
1.0 KiB
JavaScript

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;
},
};
}