All files / server/model comment.ts

0% Statements 0/15
100% Branches 0/0
100% Functions 0/0
0% Lines 0/15

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44                                                                                       
import * as moment from 'moment';
import { Types } from 'mongoose';
 
const mongoose = require('mongoose');
 
interface ICreateComment {
  text: string;
  username: string;
  userSub: string;
  articleId: string;
}
 
const commentSchema = new mongoose.Schema({
  date: Date,
  text: String,
  createdDateTime: Date,
  user: {
    sub: String,
    username: String,
  },
  articleId: Types.ObjectId,
});
 
mongoose.model('Comment', commentSchema);
export const commentModel = mongoose.model('Comment');
 
export const getComments = async (articleId: string) =>
  commentModel.find({ articleId });
 
export const createComment = async ({
  text,
  username,
  userSub,
  articleId,
}: ICreateComment) => {
  const user = { username, sub: userSub };
  return commentModel.create({
    text,
    user,
    articleId,
    createdDateTime: moment(),
  });
};