-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
79 lines (70 loc) · 1.75 KB
/
Copy pathserver.js
File metadata and controls
79 lines (70 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
const express = require('express')
const bodyParser = require('body-parser')
const express_graphql = require('express-graphql')
const mongoose = require('mongoose')
const { buildSchema } = require('graphql');
const agencyService = require('./src/services/agency');
const mediaService = require('./src/services/media');
const app = express()
app.use(bodyParser.json())
mongoose.connect('mongodb://localhost:27017/forcli');
let schema = buildSchema(`
type Query {
agency(id: String!): Agency
agencies: [Agency]
media(id: String!): Media
medias(agencyId: String!): [Media]
},
type Mutation {
createAgency(name: String!): Agency
createMedia(
agencyId: String!,
title: String!
): Media
},
type Agency {
id: String
name: String
medias: [Media]
},
type Media {
id: String
title: String
description: String
url: String
type: String
slug: String
comments: [Comment]
pins: [Pin]
},
type Comment {
id: String
comment: String!
name: String
},
type Pin {
id: String
x: Int
y: Int
comments: [Comment]
}
`)
var root = {
agency: agencyService.getAgency,
agencies: agencyService.getAgencies,
createAgency: agencyService.createAgency,
media: mediaService.getMedia,
medias: mediaService.getMedias,
createMedia: mediaService.createMedia,
// comment: comment.getComment,
// comments: comment.getComments,
// createComment: comment.createComment
};
app.use('/graphql', express_graphql({
schema: schema,
rootValue: root,
graphiql: true
}));
app.listen(3000, () => {
console.log('Example app listening on port 3000!')
})