Updated the Member.ts model

This commit is contained in:
Mathias Wagner 2023-01-22 19:51:45 +01:00
parent ec4a391cb0
commit cb2ebde014
Signed by: Mathias
GPG Key ID: B8DC354B0A1F5B44

View File

@ -1,24 +1,38 @@
import {model, ObjectId, Schema, Types} from "mongoose"; import {model, ObjectId, Schema} from "mongoose";
import { IKeyRole } from "@models/AccessKey";
import { fieldEncryption } from "mongoose-field-encryption";
export interface IMember { export interface IMember {
projectId: ObjectId, projectId: ObjectId,
memberId: ObjectId, memberId: ObjectId,
role: IKeyRole,
accepted: boolean accepted: boolean
} }
const MemberSchema = new Schema<IMember>({ const MemberSchema = new Schema<IMember>({
projectId: { projectId: {
type: Types.ObjectId, type: String,
required: true required: true
}, },
memberId: { memberId: {
type: Types.ObjectId, type: String,
required: true required: true
}, },
role: {
type: Number,
enum: IKeyRole,
default: IKeyRole.MANAGE
},
accepted: { accepted: {
type: Boolean, type: Boolean,
default: false default: false
} }
}); });
MemberSchema.plugin(fieldEncryption, {
fields: ["projectId", "memberId", "role", "accepted"],
secret: process.env.ENC_KEY,
saltGenerator: () => process.env.SIG_KEY,
});
export const Member = model<IMember>("members", MemberSchema); export const Member = model<IMember>("members", MemberSchema);