mirror of
https://github.com/documenso/documenso.git
synced 2025-11-14 08:42:12 +10:00
chore: update routes
trying to add the route for creating documents
This commit is contained in:
@ -1,9 +1,12 @@
|
||||
import type { NextApiRequest, NextApiResponse } from 'next';
|
||||
|
||||
import { deleteDraftDocument } from '@documenso/lib/server-only/document/delete-draft-document';
|
||||
import { createDocumentData } from '@documenso/lib/server-only/document-data/create-document-data';
|
||||
import { createDocument } from '@documenso/lib/server-only/document/create-document';
|
||||
import { deleteDocument } from '@documenso/lib/server-only/document/delete-document';
|
||||
import { getDocumentById } from '@documenso/lib/server-only/document/get-document-by-id';
|
||||
import { getDocuments } from '@documenso/lib/server-only/public-api/get-documents';
|
||||
import { checkUserFromToken } from '@documenso/lib/server-only/public-api/get-user-by-token';
|
||||
import { putFile } from '@documenso/lib/universal/upload/put-file';
|
||||
import { contract } from '@documenso/trpc/api-contract/contract';
|
||||
import { createNextRoute, createNextRouter } from '@documenso/trpc/server/public-api/ts-rest';
|
||||
|
||||
@ -89,11 +92,17 @@ const router = createNextRoute(contract, {
|
||||
}
|
||||
|
||||
try {
|
||||
const document = await deleteDraftDocument({ id: Number(documentId), userId: user.id });
|
||||
const document = await getDocumentById({ id: Number(documentId), userId: user.id });
|
||||
|
||||
const deletedDocument = await deleteDocument({
|
||||
id: Number(documentId),
|
||||
userId: user.id,
|
||||
status: document.status,
|
||||
});
|
||||
|
||||
return {
|
||||
status: 200,
|
||||
body: document,
|
||||
body: deletedDocument,
|
||||
};
|
||||
} catch (e) {
|
||||
return {
|
||||
@ -104,6 +113,64 @@ const router = createNextRoute(contract, {
|
||||
};
|
||||
}
|
||||
},
|
||||
createDocument: async (args) => {
|
||||
const { authorization } = args.headers;
|
||||
const { body } = args;
|
||||
|
||||
const user = await validateUserToken(authorization);
|
||||
|
||||
if (!user) {
|
||||
return {
|
||||
status: 401,
|
||||
body: {
|
||||
message: 'Unauthorized',
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
try {
|
||||
const regexPattern = /filename="(.+?)"/;
|
||||
const match = body.toString().match(regexPattern);
|
||||
const documentTitle = match?.[1] ?? 'Untitled document';
|
||||
|
||||
console.log(body.toString());
|
||||
|
||||
const file = new Blob([body.toString()], {
|
||||
type: 'application/pdf',
|
||||
});
|
||||
|
||||
const { type, data } = await putFile(file);
|
||||
|
||||
const { id: documentDataId } = await createDocumentData({
|
||||
type,
|
||||
data,
|
||||
});
|
||||
|
||||
const { id } = await createDocument({
|
||||
title: documentTitle,
|
||||
documentDataId,
|
||||
userId: user.id,
|
||||
});
|
||||
|
||||
return {
|
||||
status: 200,
|
||||
body: {
|
||||
uploadedFile: {
|
||||
id,
|
||||
message: 'Document uploaded successfuly',
|
||||
},
|
||||
},
|
||||
};
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
return {
|
||||
status: 500,
|
||||
body: {
|
||||
message: 'An error occurred while uploading your document.',
|
||||
},
|
||||
};
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
const nextRouter = createNextRouter(contract, router);
|
||||
|
||||
Reference in New Issue
Block a user