All files / models resume_model.ts

75% Statements 3/4
0% Branches 0/6
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 40 41 42 43 44 45 46 47 48 49 50      1x                                           1x                                               1x
import mongoose, { Schema } from 'mongoose';
import {ResumeData, ParsedResume} 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 },
    updatedAt: { type: Date, default: Date.now }
}, { versionKey: false });
 
 
ResumeSchema.set('toJSON', {
    transform: (doc: mongoose.Document, ret: Record<string, any>): ResumeData => {
        return {
            id: ret._id.toString(),
            owner: ret.owner._id.toString(),
            createdAt: ret.createdAt ? ret.createdAt.toISOString() : undefined,
            updatedAt: ret.updatedAt ? ret.updatedAt.toISOString() : undefined,
            version: ret.version as number,
            rawContentLink: ret.rawContentLink as string,
            parsedData: ret.parsedData as ParsedResume || {
                aboutMe: '',
                skills: [],
                roleMatch: '',
                experience: [],
                education: [],
                jobDescription: '',
                feedback: '',
                score: 0,
                fileName: ''
            }
        };
    }
});
 
export const ResumeModel = mongoose.model('Resume', ResumeSchema);