changemaker.lite/api/dist/modules/pages/blocks.service.js

76 lines
2.3 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.blocksService = void 0;
const database_1 = require("../../config/database");
const error_handler_1 = require("../../middleware/error-handler");
const blockSelect = {
id: true,
type: true,
label: true,
schema: true,
defaults: true,
thumbnail: true,
category: true,
sortOrder: true,
createdAt: true,
updatedAt: true,
};
exports.blocksService = {
async findAll(filters) {
const where = {};
if (filters.category) {
where.category = filters.category;
}
return database_1.prisma.pageBlock.findMany({
where,
select: blockSelect,
orderBy: { sortOrder: 'asc' },
});
},
async findById(id) {
const block = await database_1.prisma.pageBlock.findUnique({
where: { id },
select: blockSelect,
});
if (!block) {
throw new error_handler_1.AppError(404, 'Page block not found', 'BLOCK_NOT_FOUND');
}
return block;
},
async create(data) {
return database_1.prisma.pageBlock.create({
data: {
...data,
schema: data.schema,
defaults: data.defaults,
},
select: blockSelect,
});
},
async update(id, data) {
const existing = await database_1.prisma.pageBlock.findUnique({ where: { id } });
if (!existing) {
throw new error_handler_1.AppError(404, 'Page block not found', 'BLOCK_NOT_FOUND');
}
const updateData = { ...data };
if (data.schema !== undefined) {
updateData.schema = data.schema;
}
if (data.defaults !== undefined) {
updateData.defaults = data.defaults;
}
return database_1.prisma.pageBlock.update({
where: { id },
data: updateData,
select: blockSelect,
});
},
async delete(id) {
const existing = await database_1.prisma.pageBlock.findUnique({ where: { id } });
if (!existing) {
throw new error_handler_1.AppError(404, 'Page block not found', 'BLOCK_NOT_FOUND');
}
await database_1.prisma.pageBlock.delete({ where: { id } });
},
};
//# sourceMappingURL=blocks.service.js.map