76 lines
2.3 KiB
JavaScript
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
|