Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Query:
- {
- site(site_reference: 123456789) {
- site_name
- site_managers {
- _id
- first_name
- }
- }
- }
- {
- "data": {
- "site": {
- "site_name": "Test Site",
- "site_managers": [
- {
- "_id": "5bbcd55ff7bd643be4d490fa",
- "first_name": "Claire"
- },
- {
- "_id": "5b9fa2e1f66fb32164f4d547",
- "first_name": "John"
- }
- ]
- }
- }
- }
- type User {
- _id: String!,
- first_name: String!,
- last_name: String!,
- role_id: Int!
- email: String!,
- password: String,
- created_date: String!,
- updated_date: String!,
- last_login_date: String,
- reset_password_token: String
- }
- type Query {
- user(_id: String!): User!
- users(role_id: Int): [User!]!
- }
- Query: {
- user: (parent, args) => User.findById(args._id),
- users: (parent, args) => {
- if (args.role_id) {
- return User.find({ role_id: args.role_id })
- }
- return User.find({})
- },
- },
- type Site {
- site_name: String!,
- use_policy: String!,
- redirect_url: String!,
- intro_text: String!,
- logo: String!,
- address_line_1: String!,
- address_line_2: String,
- address_city: String!,
- address_county: String!,
- address_postcode: String!,
- phone: String!,
- site_reference: Int!,
- site_managers: [User],
- business_id: String!,
- connect_duration: Int!,
- created_date: String!,
- updated_date: String!,
- }
- type Query {
- site(site_reference: Int!): Site!
- sites(business_id: Int!): [Site!]!
- }
- Query: {
- site: (parent, args) =>
- Site.findOne({ site_reference: args.site_reference }),
- sites: (parent, args) => Site.find({ business_id: args.business_id }),
- },
- const UserSchema = new mongoose.Schema({
- first_name: { type: String, required: true },
- last_name: { type: String, required: true },
- role_id: { type: Number, required: true },
- email: { type: String, required: true },
- password: { type: String },
- created_date: { type: Date, default: Date.now, required: true },
- updated_date: { type: Date, default: Date.now, required: true },
- last_login_date: { type: Date },
- reset_password_token: { type: String },
- })
- const SiteSchema = new mongoose.Schema({
- site_name: { type: String, required: true },
- use_policy: {
- type: String,
- required: true,
- default: config.defaultUsePolicy,
- },
- redirect_url: {
- type: String,
- required: true,
- default: config.defaultRedirect,
- },
- intro_text: {
- type: String,
- required: true,
- default: config.defaultIntroText,
- },
- logo: { type: String, required: true, default: config.defaultLogo },
- address_line_1: { type: String, required: true },
- address_line_2: String,
- address_city: { type: String, required: true },
- address_county: { type: String, required: true },
- address_postcode: { type: String, required: true },
- phone: { type: String, required: true },
- site_reference: { type: String, required: true },
- site_managers: {type:[mongoose.Schema.Types.ObjectId], required: true}
- business_id: { type: mongoose.Schema.Types.ObjectId, required: true },
- connect_duration: { type: Number, required: true, default: 0 },
- created_date: { type: Date, default: Date.now, required: true },
- updated_date: { type: Date, default: Date.now, required: true },
- })
- // Note the actual ref should be whatever name you passed to mongoose.model
- site_managers: [{type:mongoose.Schema.Types.ObjectId, ref: 'User'}]
- site: (parent, { site_reference }) => {
- return Site.findOne({ site_reference }).populate('site_managers').exec()
- }
Add Comment
Please, Sign In to add comment