diff options
author | eug-vs <eug-vs@keemail.me> | 2020-06-25 11:23:20 +0300 |
---|---|---|
committer | eug-vs <eug-vs@keemail.me> | 2020-06-25 11:23:20 +0300 |
commit | a58354a1d1bf967fc932723b9138d8c6322591d5 (patch) | |
tree | 19ae1b05bed540af43dbcc93803f2704efbcf604 /models | |
parent | 681e51a658bfed723b368fc5b71b1350909d9496 (diff) | |
download | which-api-a58354a1d1bf967fc932723b9138d8c6322591d5.tar.gz |
feat: validate fields in votes
Diffstat (limited to 'models')
-rw-r--r-- | models/votes/vote.model.ts | 2 | ||||
-rw-r--r-- | models/votes/vote.schema.ts | 9 |
2 files changed, 8 insertions, 3 deletions
diff --git a/models/votes/vote.model.ts b/models/votes/vote.model.ts index 1dbb146..df2307e 100644 --- a/models/votes/vote.model.ts +++ b/models/votes/vote.model.ts @@ -1,5 +1,7 @@ import { Model, model } from 'mongoose'; import { VoteSchema, voteSchema } from './vote.schema'; +voteSchema.index({ pollId: 1, userId: 1 }, { unique: true }); // Unique together + export default model<VoteSchema, Model<VoteSchema>>('Vote', voteSchema); diff --git a/models/votes/vote.schema.ts b/models/votes/vote.schema.ts index 709e8bf..63ba212 100644 --- a/models/votes/vote.schema.ts +++ b/models/votes/vote.schema.ts @@ -8,15 +8,18 @@ export interface VoteSchema extends Document, Omit<Vote, '_id'> { export const voteSchema = new Schema({ userId: { type: Types.ObjectId, - ref: 'user' + ref: 'user', + required: true }, pollId: { type: Types.ObjectId, - ref: 'poll' + ref: 'poll', + required: true }, which: { type: String, - enum: ['left', 'right'] + enum: ['left', 'right'], + required: true } }, { timestamps: true }); |