Spaces:
Runtime error
Runtime error
File size: 2,220 Bytes
a126dda db2ddc0 a126dda db2ddc0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | import { success, created } from '../../lib/response.js'
import * as projectsService from './projects.service.js'
import path from 'path'
import fs from 'fs'
export async function get(req, res, next) {
try {
const project = await projectsService.getProject(req.params.orderId, req.user.id)
success(res, project)
} catch (err) { next(err) }
}
export async function create(req, res, next) {
try {
const project = await projectsService.createProject(req.params.orderId, req.user.id, req.body.templateId)
created(res, project)
} catch (err) { next(err) }
}
export async function updateConfig(req, res, next) {
try {
const project = await projectsService.updateConfig(req.params.orderId, req.user.id, req.validatedData.config)
success(res, project)
} catch (err) { next(err) }
}
export async function updateUrls(req, res, next) {
try {
const project = await projectsService.updateUrls(req.params.orderId, req.user.id, req.validatedData)
success(res, project)
} catch (err) { next(err) }
}
export async function downloadSource(req, res, next) {
try {
const { filePath, templateTitle } = await projectsService.getSourceFile(req.params.orderId, req.user.id)
const basename = path.basename(filePath)
const downloadName = `${templateTitle.replace(/\s+/g, '-')}-source${path.extname(basename)}`
if (!fs.existsSync(filePath)) {
return success(res, null, 'ملف المصدر غير متاح', 404)
}
res.download(filePath, downloadName)
} catch (err) { next(err) }
}
export async function checkUpdate(req, res, next) {
try {
const result = await projectsService.checkForUpdate(req.params.orderId, req.user.id)
success(res, result)
} catch (err) { next(err) }
}
export async function applyUpdate(req, res, next) {
try {
const project = await projectsService.applyTemplateUpdate(req.params.orderId, req.user.id)
success(res, project, 'تم تحديث المشروع')
} catch (err) { next(err) }
}
export async function getPreviewUrl(req, res, next) {
try {
const url = await projectsService.generatePreviewUrl(req.params.orderId, req.user.id)
success(res, { previewUrl: url })
} catch (err) { next(err) }
}
|