All files / src/models posts_model.ts

100% Statements 31/31
100% Branches 1/1
100% Functions 1/1
100% Lines 31/31

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 321x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
import mongoose, { Document, Schema } from 'mongoose';
import {IPost, PostData} from 'types/post_types';
 
const postSchema: Schema = new mongoose.Schema({
    title: {
        type: String,
        required: true,
    },
    content: String,
    owner: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'User',
        required: true
    },
}, {  timestamps: true, strict: true });
 
postSchema.set('toJSON', {
    transform: (doc: Document, ret: Record<string, any>): PostData => {
        return {
            id: ret._id,
            title: ret.title,
            content: ret.content,
            owner: ret.owner._id.toString(),
            createdAt: ret.createdAt,
            updatedAt: ret.updatedAt
 
        };
    }
});
 
export const PostModel = mongoose.model<IPost>("Posts", postSchema);