aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreug-vs <eug-vs@keemail.me>2020-06-25 09:03:46 +0300
committereug-vs <eug-vs@keemail.me>2020-06-25 09:39:44 +0300
commitfc9cf3b8f77e9068fa51d614b0d0b120f7bf2440 (patch)
tree66485a3f34a3a1d77b337edd880e2560205f2b8b
parentffcb9d248228087ee05c7569784705b41d729aee (diff)
downloadwhich-api-fc9cf3b8f77e9068fa51d614b0d0b120f7bf2440.tar.gz
feat!: construct VoteService based on VoteModel
-rw-r--r--models/polls/poll.schema.ts7
-rw-r--r--services/votes/votes.class.ts14
-rw-r--r--services/votes/votes.service.ts9
3 files changed, 6 insertions, 24 deletions
diff --git a/models/polls/poll.schema.ts b/models/polls/poll.schema.ts
index 2f39aa1..4d1d762 100644
--- a/models/polls/poll.schema.ts
+++ b/models/polls/poll.schema.ts
@@ -2,7 +2,6 @@ import { Document, Schema, Types } from 'mongoose';
export interface ImageDataSchema {
url: string;
- votes: string[];
}
export interface PollSchema extends Document {
@@ -17,12 +16,6 @@ export interface PollSchema extends Document {
export const imageDataSchema = {
url: String,
- votes: [
- {
- type: Types.ObjectId,
- ref: 'vote'
- }
- ]
};
export const pollSchema = new Schema({
diff --git a/services/votes/votes.class.ts b/services/votes/votes.class.ts
deleted file mode 100644
index 3220ee7..0000000
--- a/services/votes/votes.class.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import PollModel from '../../models/polls/poll.model';
-import { PollSchema } from '../../models/polls/poll.schema';
-
-export default class Votes {
- async create(data: any, params: any): Promise<PollSchema | null> {
- const poll = await PollModel.findById(params.route.id);
- if (poll) {
- const updatedPoll = await poll.vote(params.user._id, data.which);
- return updatedPoll.toObject();
- }
- return null;
- }
-}
-
diff --git a/services/votes/votes.service.ts b/services/votes/votes.service.ts
index 3947d9b..81f767c 100644
--- a/services/votes/votes.service.ts
+++ b/services/votes/votes.service.ts
@@ -1,10 +1,13 @@
import { Application } from '@feathersjs/express';
-import Votes from './votes.class';
+import service from 'feathers-mongoose';
+import Model from '../../models/votes/vote.model';
import hooks from './votes.hooks';
+const VoteService = service({ Model });
+
export default (app: Application): void => {
- app.use('/polls/:id/votes/', new Votes());
- app.service('/polls/:id/votes/').hooks(hooks);
+ app.use('/votes/', VoteService);
+ app.service('votes').hooks(hooks);
};