Browse Source

done caption

unknown 1 year ago
parent
commit
5d14e5f666
4 changed files with 32 additions and 9 deletions
  1. 23 5
      controllers/messages.js
  2. 4 0
      model/schemas/message.js
  3. 4 4
      routes/messages.js
  4. 1 0
      validation/message.js

+ 23 - 5
controllers/messages.js

@@ -93,7 +93,8 @@ const removeMessage = async (req, res, next) => {
 
 const sentMessage = async (req, res, next) => {
 	try {
-		const { id, message } = req.body;
+		const { id, message, caption } = req.body;
+		console.log(caption);
 		const idTime = Math.round(Date.now() / 1000);
 		const user = req.user;
 		const userId = user.id;
@@ -111,6 +112,7 @@ const sentMessage = async (req, res, next) => {
 				color,
 				number,
 				type: 'text',
+				caption,
 				idTime,
 				companionIdFlow: userId,
 				companionId: id,
@@ -124,6 +126,7 @@ const sentMessage = async (req, res, next) => {
 				color,
 				number,
 				type: 'text',
+				caption,
 				idTime,
 				companionIdFlow: userId,
 				companionId: userId,
@@ -163,7 +166,8 @@ const sentMessage = async (req, res, next) => {
 const imageMessage = async (req, res, next) => {
 	try {
 		const userId = req.user.id;
-		const id = req.params.companionId;
+		const [id, ...rest] = req.params.companionIdAndCaption.split(' ');
+		const caption = rest.join(' ').slice(0, -1);
 		const idTime = Math.round(Date.now() / 1000);
 		const isChat = await ChatModel.getByField(id, userId);
 		const isCompanionChat = await ChatModel.getByField(userId, id);
@@ -192,6 +196,7 @@ const imageMessage = async (req, res, next) => {
 				number,
 				type: 'image',
 				fullType,
+				caption,
 				idTime,
 				companionIdFlow: userId,
 				companionId: id,
@@ -206,6 +211,7 @@ const imageMessage = async (req, res, next) => {
 				number,
 				type: 'image',
 				fullType,
+				caption,
 				idTime,
 				companionIdFlow: userId,
 				companionId: userId,
@@ -245,7 +251,9 @@ const imageMessage = async (req, res, next) => {
 const audioMessage = async (req, res, next) => {
 	try {
 		const userId = req.user.id;
-		const id = req.params.companionId;
+		const [id, ...rest] = req.params.companionIdAndCaption.split(' ');
+		let caption = rest.join(' ');
+		if (caption.length === 1) caption.slice(0, -1);
 		const idTime = Math.round(Date.now() / 1000);
 		const isChat = await ChatModel.getByField(id, userId);
 		const isCompanionChat = await ChatModel.getByField(userId, id);
@@ -274,6 +282,7 @@ const audioMessage = async (req, res, next) => {
 				number,
 				type: 'audio',
 				fullType,
+				caption,
 				idTime,
 				companionIdFlow: userId,
 				companionId: id,
@@ -288,6 +297,7 @@ const audioMessage = async (req, res, next) => {
 				number,
 				type: 'audio',
 				fullType,
+				caption,
 				idTime,
 				companionIdFlow: userId,
 				companionId: userId,
@@ -327,7 +337,9 @@ const audioMessage = async (req, res, next) => {
 const videoMessage = async (req, res, next) => {
 	try {
 		const userId = req.user.id;
-		const id = req.params.companionId;
+		const [id, ...rest] = req.params.companionIdAndCaption.split(' ');
+		let caption = rest.join(' ');
+		if (caption.length === 1) caption.slice(0, -1);
 		const idTime = Math.round(Date.now() / 1000);
 		const isChat = await ChatModel.getByField(id, userId);
 		const isCompanionChat = await ChatModel.getByField(userId, id);
@@ -356,6 +368,7 @@ const videoMessage = async (req, res, next) => {
 				number,
 				type: 'video',
 				fullType,
+				caption,
 				idTime,
 				companionIdFlow: userId,
 				companionId: id,
@@ -370,6 +383,7 @@ const videoMessage = async (req, res, next) => {
 				number,
 				type: 'video',
 				fullType,
+				caption,
 				idTime,
 				companionIdFlow: userId,
 				companionId: userId,
@@ -409,7 +423,9 @@ const videoMessage = async (req, res, next) => {
 const fileMessage = async (req, res, next) => {
 	try {
 		const userId = req.user.id;
-		const id = req.params.companionId;
+		const [id, ...rest] = req.params.companionIdAndCaption.split(' ');
+		let caption = rest.join(' ');
+		if (caption.length === 1) caption.slice(0, -1);
 		const idTime = Math.round(Date.now() / 1000);
 		const isChat = await ChatModel.getByField(id, userId);
 		const isCompanionChat = await ChatModel.getByField(userId, id);
@@ -451,6 +467,7 @@ const fileMessage = async (req, res, next) => {
 				number,
 				type,
 				fullType,
+				caption,
 				idTime,
 				companionIdFlow: userId,
 				companionId: id,
@@ -465,6 +482,7 @@ const fileMessage = async (req, res, next) => {
 				number,
 				type,
 				fullType,
+				caption,
 				idTime,
 				companionIdFlow: userId,
 				companionId: userId,

+ 4 - 0
model/schemas/message.js

@@ -50,6 +50,10 @@ const messageSchema = new Schema(
 			type: String,
 			default: null,
 		},
+		caption: {
+			type: String,
+			default: null,
+		},
 		owner: {
 			type: SchemaTypes.ObjectId,
 			ref: 'user',

+ 4 - 4
routes/messages.js

@@ -9,22 +9,22 @@ router
 	.get('/', guard, controllers.listMessages)
 	.post('/', guard, validation.sentMessage, controllers.sentMessage)
 	.post(
-		'/image/:companionId',
+		'/image/:companionIdAndCaption',
 		[guard, upload.uploadImage.single('image'), validation.validateUploadFile],
 		controllers.imageMessage
 	)
 	.post(
-		'/audio/:companionId',
+		'/audio/:companionIdAndCaption',
 		[guard, upload.uploadAudio.single('audio'), validation.validateUploadFile],
 		controllers.audioMessage
 	)
 	.post(
-		'/video/:companionId',
+		'/video/:companionIdAndCaption',
 		[guard, upload.uploadVideo.single('video'), validation.validateUploadFile],
 		controllers.videoMessage
 	)
 	.post(
-		'/file/:companionId',
+		'/file/:companionIdAndCaption',
 		[guard, upload.uploadFile.single('file'), validation.validateUploadFile],
 		controllers.fileMessage
 	);

+ 1 - 0
validation/message.js

@@ -5,6 +5,7 @@ const validate = require('./validate');
 const schemaSentMessage = Joi.object({
 	id: Joi.string().required(),
 	message: Joi.string().min(1).max(1400).required(),
+	caption: Joi.any().optional(),
 });
 
 module.exports.sentMessage = (req, _res, next) => {