mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-22 07:29:08 +00:00
fix: user can quick start project from partial data
This commit is contained in:
committed by
Carlos Valente
parent
a5daa76616
commit
cbba19a9b1
@@ -4,6 +4,7 @@ import {
|
|||||||
MessageResponse,
|
MessageResponse,
|
||||||
ProjectFileListResponse,
|
ProjectFileListResponse,
|
||||||
ProjectLogoResponse,
|
ProjectLogoResponse,
|
||||||
|
TimeFormat,
|
||||||
} from 'ontime-types';
|
} from 'ontime-types';
|
||||||
import { getErrorMessage } from 'ontime-utils';
|
import { getErrorMessage } from 'ontime-utils';
|
||||||
|
|
||||||
@@ -16,6 +17,7 @@ import {
|
|||||||
handleProjectUploaded,
|
handleProjectUploaded,
|
||||||
} from '../../services/project-service/projectServiceUtils.js';
|
} from '../../services/project-service/projectServiceUtils.js';
|
||||||
import * as projectService from '../../services/project-service/ProjectService.js';
|
import * as projectService from '../../services/project-service/ProjectService.js';
|
||||||
|
import { getPartialProject } from '../../models/dataModel.js';
|
||||||
|
|
||||||
export async function patchPartialProjectFile(req: Request, res: Response<DatabaseModel | ErrorResponse>) {
|
export async function patchPartialProjectFile(req: Request, res: Response<DatabaseModel | ErrorResponse>) {
|
||||||
try {
|
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>) {
|
export async function quickProjectFile(req: Request, res: Response<{ filename: string } | ErrorResponse>) {
|
||||||
try {
|
try {
|
||||||
const nameFromTitle = req.body.project.title ? sanitize(req.body.project.title) : 'untitled';
|
const maybeProjectTitle: string | undefined = req.body.project?.title;
|
||||||
const filename = await projectService.createProject(nameFromTitle, req.body);
|
const maybeTimeFormat: TimeFormat | undefined = req.body.settings?.timeFormat;
|
||||||
res.status(200).send({
|
const maybeLanguage: string | undefined = req.body.settings?.language;
|
||||||
filename,
|
|
||||||
|
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) {
|
} catch (error) {
|
||||||
const message = getErrorMessage(error);
|
const message = getErrorMessage(error);
|
||||||
res.status(500).send({ message });
|
res.status(500).send({ message });
|
||||||
|
|||||||
Reference in New Issue
Block a user