All files / models resume_model.ts

75% Statements 3/4
100% Branches 0/0
0% Functions 0/1
75% Lines 3/4

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      1x                                         1x                           1x
import mongoose, { Schema } from 'mongoose';
import {ResumeData} from "types/resume_types";
 
const ResumeSchema = new Schema({
    owner: { type: Schema.Types.ObjectId, ref: 'User', required: true },
    version: { type: Number, required: true },
    rawContentLink: { type: String, required: true },
    parsedData: {
        type: {
            fileName: { type: String, required: false },
            aboutMe: { type: String, required: false },
            skills: { type: [String], required: false },
            roleMatch: { type: String, required: false },
            experience: { type: [String], required: false },
            jobDescription: { type: String, required: false },
            feedback: { type: String, required: false },
            score: { type: Number, required: false },
        },
        required: false
    },
    createdAt: { type: Date, default: Date.now }
}, { versionKey: false });
 
 
ResumeSchema.set('toJSON', {
    transform: (doc, ret): ResumeData => {
        return {
            id: ret._id,
            owner: ret.owner._id.toString(),
            createdAt: ret.createdAt,
            updatedAt: ret.updatedAt,
            version: ret.version,
            rawContentLink: ret.rawContentLink,
            parsedData: ret.parsedData
        };
    }
});
 
export const ResumeModel = mongoose.model('Resume', ResumeSchema);