From 14c2ad98bb9e947f056ebc401956094374a43293 Mon Sep 17 00:00:00 2001 From: pt00371 <pt00371@surrey.ac.uk> Date: Fri, 24 Mar 2023 07:42:03 +0000 Subject: [PATCH] basic routes,controllers,models added.not complete --- comment-service/src/controllers/Comment.ts | 47 ++++++++++++++++++++++ comment-service/src/models/Comment.ts | 24 +++++++++++ comment-service/src/routes/Comment.ts | 10 +++++ comment-service/src/server.ts | 3 +- 4 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 comment-service/src/controllers/Comment.ts create mode 100644 comment-service/src/models/Comment.ts create mode 100644 comment-service/src/routes/Comment.ts diff --git a/comment-service/src/controllers/Comment.ts b/comment-service/src/controllers/Comment.ts new file mode 100644 index 00000000..686076ef --- /dev/null +++ b/comment-service/src/controllers/Comment.ts @@ -0,0 +1,47 @@ +import { NextFunction, Request, Response } from "express"; +import mongoose from 'mongoose'; +import Comment from "../models/Comment"; + +const createComment = (req: Request, res: Response, next: NextFunction) => { + const { body } = req.body; + + const comment = new Comment({ + _id: new mongoose.Types.ObjectId(), + body + }); + + return comment + .save() + .then((comment) => res.status(201).json({ comment })) + .catch((error) => res.status(500).json({ error })); + +}; + + + + +/* +const readComment = (req: Request, res: Response, next: NextFunction) => { + const commentId = req.params.commentId; + + return Comment.findById(commentId) + .then((comment) => ( comment ? res.status(200).json({ comment }) : res.status(404).json({ message: ' Not Found'}))) + .catch((error) => res.status(500).json({ error })); + +} +*/ + +const readAllComments = (req: Request, res: Response, next: NextFunction) => { + + return Comment.find() + .then((comments) => res.status(200).json({ comments })) + .catch((error) => res.status(500).json({ error })); + +} + + +export default { createComment, readAllComments} + + +//const createComment = (req: Request, res: Response, next: NextFunction) => {} +//const createComment = (req: Request, res: Response, next: NextFunction) => {} \ No newline at end of file diff --git a/comment-service/src/models/Comment.ts b/comment-service/src/models/Comment.ts new file mode 100644 index 00000000..068734b9 --- /dev/null +++ b/comment-service/src/models/Comment.ts @@ -0,0 +1,24 @@ +import mongoose, {Document, Schema} from 'mongoose'; + +export interface IComment { + user_id: number; + post_id: number; + body: string; +} + +export interface ICommentModel extends IComment, Document{} + +const CommentSchema: Schema = new Schema( + { //Commented Out for testing + //user_id:{ type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true}, + //post_id:{ type: mongoose.Schema.Types.ObjectId, ref: 'Post', required: true}, + body: { type: String, required: true }, + }, + { + timestamps: true, + } + +) + +export default mongoose.model<ICommentModel>('Comments', CommentSchema) + diff --git a/comment-service/src/routes/Comment.ts b/comment-service/src/routes/Comment.ts new file mode 100644 index 00000000..f4098281 --- /dev/null +++ b/comment-service/src/routes/Comment.ts @@ -0,0 +1,10 @@ +import express from "express"; +import controller from '../controllers/Comment'; + +const router = express.Router(); + +router.post('/create', controller.createComment); +router.get('/get/', controller.readAllComments); + +export = router; + diff --git a/comment-service/src/server.ts b/comment-service/src/server.ts index e8bc68b6..89b815b9 100644 --- a/comment-service/src/server.ts +++ b/comment-service/src/server.ts @@ -3,7 +3,7 @@ import http from 'http'; import mongoose from 'mongoose'; import { config } from './config/config'; import Logging from './library/logging'; - +import commentRoutes from './routes/Comment' const router = express(); //Connect to Mongo @@ -49,6 +49,7 @@ const StartServer = () => { }); /**ROUTES */ + router.use('/comments', commentRoutes); /**HEALTHCHECK */ /** Healthcheck */ -- GitLab