diff --git a/packages/server/src/controllers/PostsController/index.js b/packages/server/src/controllers/PostsController/index.js index 3fc641ef..2fc00dd4 100644 --- a/packages/server/src/controllers/PostsController/index.js +++ b/packages/server/src/controllers/PostsController/index.js @@ -54,14 +54,14 @@ export default class PostsController extends Controller { "/post": { middlewares: ["withAuthentication"], fn: Schematized({ - required: ["message", "date"], - select: ["message", "additions", "type", "data", "date"], + required: ["timestamp"], + select: ["message", "attachments", "type", "data", "timestamp"], }, async (req, res) => { const post = await CreatePost({ user_id: req.user.id, message: req.selection.message, - date: req.selection.date, - additions: req.selection.additions, + timestamp: req.selection.timestamp, + attachments: req.selection.attachments, type: req.selection.type, data: req.selection.data, }) diff --git a/packages/server/src/controllers/PostsController/methods/createPost.js b/packages/server/src/controllers/PostsController/methods/createPost.js index c639f510..e3b6229c 100644 --- a/packages/server/src/controllers/PostsController/methods/createPost.js +++ b/packages/server/src/controllers/PostsController/methods/createPost.js @@ -1,15 +1,31 @@ import { Post } from "../../../models" import getPostData from "./getPostData" +import momentTimezone from "moment-timezone" export default async (payload) => { - const { user_id, message, additions, type, data, date } = payload + let { user_id, message, attachments, type, data, timestamp } = payload + + // check if is a Array and have at least one element + const isAttachmentsValid = Array.isArray(attachments) && attachments.length > 0 + + if (!isAttachmentsValid && !message) { + throw new Error("Cannot create a post without message or attachments") + } + + if (message) { + message = String(message).toString() + } + + const current_timezone = momentTimezone.tz.guess() + const created_at = momentTimezone.tz(Date.now(), current_timezone).format() const post = new Post({ - user_id: typeof user_id === "object" ? user_id.toString() : user_id, - message: String(message).toString(), - additions: additions ?? [], - created_at: date, type: type, + created_at: created_at, + user_id: typeof user_id === "object" ? user_id.toString() : user_id, + message: message, + attachments: attachments ?? [], + timestamp: timestamp, data: data, })