Some changes

This commit is contained in:
Riccardo
2021-01-03 15:32:12 +01:00
parent 9641e4f7e3
commit 8dd59ae64b
6 changed files with 115 additions and 63 deletions

View File

@@ -0,0 +1,43 @@
import mongoose from 'mongoose';
import timestamps from 'mongoose-timestamp';
import { composeWithMongoose } from 'graphql-compose-mongoose';
export const AppointmentSchema = new mongoose.Schema(
{
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: true,
},
title: {
type: String,
required: true,
},
description: {
type: String,
required: true,
},
timeStart: {
type: Date,
required: true,
},
timeEnd: {
type: Date,
required: true,
},
},
{
collection: 'appointment',
}
);
AppointmentSchema.plugin(timestamps);
AppointmentSchema.index({ createdAt: 1, updatedAt: 1 });
export const Appointment = mongoose.model('Appointment', AppointmentSchema);
export const AppointmentTC = composeWithMongoose(Appointment);

View File

@@ -1,33 +0,0 @@
import mongoose from 'mongoose';
import timestamps from 'mongoose-timestamp';
import { composeWithMongoose } from 'graphql-compose-mongoose';
export const TaskSchema = new mongoose.Schema(
{
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: true,
},
task: {
type: String,
trim: true,
required: true,
},
description: {
type: String,
trim: true,
required: true,
},
},
{
collection: 'tasks',
}
);
TaskSchema.plugin(timestamps);
TaskSchema.index({ createdAt: 1, updatedAt: 1 });
export const Task = mongoose.model('Task', TaskSchema);
export const TaskTC = composeWithMongoose(Task);

View File

@@ -4,18 +4,33 @@ import { composeWithMongoose } from 'graphql-compose-mongoose';
export const UserSchema = new mongoose.Schema(
{
name: {
firstName: {
type: String,
trim: true,
required: true,
},
lastName: {
type: String,
required: true,
},
password: {
type: String,
required: true,
},
email: {
type: String,
lowercase: true,
trim: true,
unique: true,
required: true,
},
isActive: {
type: Boolean,
required: true,
default: 1
},
},
{
collection: 'users',

View File

@@ -0,0 +1,51 @@
import { Appointment, AppointmentTC } from '../models/appointment.js';
async function feed(parent, args, context, info) {
const where = args.filter
? {
OR: [
{ title: { contains: args.filter } },
{ description: { contains: args.filter } }
]
}
: {};
console.log(context.mongo);
const appointments = await context.mongo.appointment.findMany({
where,
skip: args.skip,
take: args.take,
orderBy: args.orderBy
});
const count = await context.mongo.appointment.count({ where });
return {
id: 'main-feed',
appointments,
count
};
}
const AppointmentQuery = {
appointmentById: AppointmentTC.getResolver('findById'),
appointmentByIds: AppointmentTC.getResolver('findByIds'),
appointmentOne: AppointmentTC.getResolver('findOne'),
appointmentMany: AppointmentTC.getResolver('findMany'),
appointmentCount: AppointmentTC.getResolver('count'),
appointmentConnection: AppointmentTC.getResolver('connection'),
appointmentPagination: AppointmentTC.getResolver('pagination'),
};
const AppointmentMutation = {
appointmentCreateOne: AppointmentTC.getResolver('createOne'),
appointmentCreateMany: AppointmentTC.getResolver('createMany'),
appointmentUpdateById: AppointmentTC.getResolver('updateById'),
appointmentUpdateOne: AppointmentTC.getResolver('updateOne'),
appointmentUpdateMany: AppointmentTC.getResolver('updateMany'),
appointmentRemoveById: AppointmentTC.getResolver('removeById'),
appointmentRemoveOne: AppointmentTC.getResolver('removeOne'),
appointmentRemoveMany: AppointmentTC.getResolver('removeMany'),
};
export { AppointmentQuery, AppointmentMutation };

View File

@@ -5,16 +5,16 @@ import db from '../utils/db.js';
const schemaComposer = new SchemaComposer();
import { UserQuery, UserMutation } from './user.js';
import { TaskQuery, TaskMutation } from './task.js';
import { AppointmentQuery, AppointmentMutation } from './appointment.js';
schemaComposer.Query.addFields({
...UserQuery,
...TaskQuery,
...AppointmentQuery,
});
schemaComposer.Mutation.addFields({
...UserMutation,
...TaskMutation,
...AppointmentMutation,
});
export default schemaComposer.buildSchema();

View File

@@ -1,24 +0,0 @@
import { Task, TaskTC } from '../models/task.js';
const TaskQuery = {
taskById: TaskTC.getResolver('findById'),
taskByIds: TaskTC.getResolver('findByIds'),
taskOne: TaskTC.getResolver('findOne'),
taskMany: TaskTC.getResolver('findMany'),
taskCount: TaskTC.getResolver('count'),
taskConnection: TaskTC.getResolver('connection'),
taskPagination: TaskTC.getResolver('pagination'),
};
const TaskMutation = {
taskCreateOne: TaskTC.getResolver('createOne'),
taskCreateMany: TaskTC.getResolver('createMany'),
taskUpdateById: TaskTC.getResolver('updateById'),
taskUpdateOne: TaskTC.getResolver('updateOne'),
taskUpdateMany: TaskTC.getResolver('updateMany'),
taskRemoveById: TaskTC.getResolver('removeById'),
taskRemoveOne: TaskTC.getResolver('removeOne'),
taskRemoveMany: TaskTC.getResolver('removeMany'),
};
export { TaskQuery, TaskMutation };