From cbba19a9b193459326688fa830962fe6e3bbc86b Mon Sep 17 00:00:00 2001 From: Carlos Valente Date: Sat, 20 Dec 2025 15:08:19 +0100 Subject: [PATCH] fix: user can quick start project from partial data --- apps/server/src/api-data/db/db.controller.ts | 23 ++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/apps/server/src/api-data/db/db.controller.ts b/apps/server/src/api-data/db/db.controller.ts index ca6d286cb..90d14a2ab 100644 --- a/apps/server/src/api-data/db/db.controller.ts +++ b/apps/server/src/api-data/db/db.controller.ts @@ -4,6 +4,7 @@ import { MessageResponse, ProjectFileListResponse, ProjectLogoResponse, + TimeFormat, } from 'ontime-types'; import { getErrorMessage } from 'ontime-utils'; @@ -16,6 +17,7 @@ import { handleProjectUploaded, } from '../../services/project-service/projectServiceUtils.js'; import * as projectService from '../../services/project-service/ProjectService.js'; +import { getPartialProject } from '../../models/dataModel.js'; export async function patchPartialProjectFile(req: Request, res: Response) { try { @@ -68,11 +70,24 @@ export async function createProjectFile(req: Request, res: Response<{ filename: */ export async function quickProjectFile(req: Request, res: Response<{ filename: string } | ErrorResponse>) { try { - const nameFromTitle = req.body.project.title ? sanitize(req.body.project.title) : 'untitled'; - const filename = await projectService.createProject(nameFromTitle, req.body); - res.status(200).send({ - filename, + const maybeProjectTitle: string | undefined = req.body.project?.title; + const maybeTimeFormat: TimeFormat | undefined = req.body.settings?.timeFormat; + const maybeLanguage: string | undefined = req.body.settings?.language; + + const projectTitle = maybeProjectTitle ? sanitize(maybeProjectTitle) : 'untitled'; + const project = getPartialProject('project'); + const settings = getPartialProject('settings'); + + project.title = projectTitle; + if (maybeTimeFormat) settings.timeFormat = maybeTimeFormat; + if (maybeLanguage) settings.language = maybeLanguage; + + const filename = await projectService.createProjectWithPatch(projectTitle, { + project, + settings, }); + + res.status(200).send({ filename }); } catch (error) { const message = getErrorMessage(error); res.status(500).send({ message });