From 79fbaba93dcc7b2ab3d2c157a98ce6747d836acd Mon Sep 17 00:00:00 2001 From: Dhroov Gupta Date: Tue, 28 Aug 2018 14:05:58 +0530 Subject: [PATCH 1/2] added teachers api --- src/models/index.ts | 1 + src/models/teacher.ts | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 src/models/teacher.ts diff --git a/src/models/index.ts b/src/models/index.ts index 415a64d..0314755 100644 --- a/src/models/index.ts +++ b/src/models/index.ts @@ -1,3 +1,4 @@ import './batch' import './center' import './course' +import './teacher' diff --git a/src/models/teacher.ts b/src/models/teacher.ts new file mode 100644 index 0000000..30f2e89 --- /dev/null +++ b/src/models/teacher.ts @@ -0,0 +1,34 @@ +import jagql from '@jagql/framework' +import {getHandler} from '../handlers/sqlHandler'; +import {Batch} from './batch' + +const Joi = jagql.Joi +const handler = getHandler() + +export interface Teacher { + name: string + id: string + contactNo?: string + email?: string + batches?: Batch[] +} + +jagql.define ({ + resource: 'teachers', + primaryKey: 'string', + handlers: handler, + namespace: 'cb', + attributes: { + name: Joi.string().required(), + id: Joi.string().length(2).required(), + contactNo: Joi.string().allow(null), + email: Joi.string().email().allow(null), + batches: Joi.belongsToMany({resource: 'batches', as: 'center'}), + }, + examples: [ + {id: 'AG', name: 'Arnav Gupta', type: 'teachers'}, + {id: 'PR', name: 'Prateek Narang', type: 'teachers'}, + ], +}) + +handler.populate({force: true}) From b1c13369bfb65983fb9f1df3eb85c78eadebda40 Mon Sep 17 00:00:00 2001 From: Dhroov Gupta Date: Wed, 29 Aug 2018 15:05:52 +0530 Subject: [PATCH 2/2] add batcher teachers relationship --- src/models/batch/index.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/models/batch/index.ts b/src/models/batch/index.ts index 7f64b7b..17c2fd6 100644 --- a/src/models/batch/index.ts +++ b/src/models/batch/index.ts @@ -2,6 +2,7 @@ import jagql, {BaseType} from '@jagql/framework' import {getHandler} from '../../handlers/sqlHandler' import {Center} from '../center' import {Course} from '../course' +import {Teacher} from '../teacher' import ValidateIdHandler from './validateIdHandler' const Joi = jagql.Joi @@ -10,6 +11,7 @@ export interface Batch { id: string center: Center | BaseType course: Course | BaseType + teacher: Teacher | BaseType startDate?: Date endDate?: Date lectureStartTime?: string @@ -27,6 +29,7 @@ jagql.define({ id: Joi.string().max(8), center: Joi.one('centers'), course: Joi.one('courses'), + teacher: Joi.many('teachers'), startDate: Joi.date(), endDate: Joi.date(), lectureStartTime: Joi.string().length(4).regex(/([01]?[0-9]|2[0-3])[0-5][0-9]/), @@ -37,6 +40,7 @@ jagql.define({ id: 'CBPP18S1', type: 'batches', course: {type: 'courses', id: 'CB'}, center: {type: 'centers', id: 'PP'}, + teacher: {type: 'teachers', id: 'AR'}, lectureStartTime: '1000', lectureEndTime: '1400', startDate: new Date('2018-03-18'), endDate: new Date('2018-04-15'),