1 | #!/usr/bin/env node
|
2 |
|
3 | const express = require('express'),
|
4 | bodyParser = require('body-parser'),
|
5 | multer = require('multer'),
|
6 | upload = multer(),
|
7 | Gateway = require('./lib/proxy'),
|
8 | logger = require('./lib/logger');
|
9 |
|
10 | const port = process.env.PORT || 3333;
|
11 | const app = express();
|
12 |
|
13 | const gateway = new Gateway({
|
14 | url: process.env.MARKETPLACE_URL,
|
15 | token: process.env.MARKETPLACE_TOKEN,
|
16 | email: process.env.MARKETPLACE_EMAIL
|
17 | });
|
18 |
|
19 | app.use(bodyParser.json());
|
20 | app.use('/gui/editor', express.static(__dirname + '/gui/editor/public'));
|
21 | app.use('/gui/graphql', express.static(__dirname + '/gui/graphql/public'));
|
22 |
|
23 |
|
24 | const graphqlRouting = (req, res) => {
|
25 | gateway
|
26 | .graph(req.body)
|
27 | .then(body => res.send(body))
|
28 | .catch(error => res.send(error));
|
29 | };
|
30 |
|
31 | app.post('/graphql', graphqlRouting);
|
32 | app.post('/api/graph', graphqlRouting);
|
33 |
|
34 |
|
35 | app.put(
|
36 | '/api/marketplace_builder/marketplace_releases/sync',
|
37 | upload.fields([{ name: 'path' }, { name: 'marketplace_builder_file_body' }]),
|
38 | (req, res) => {
|
39 | const formData = {
|
40 | path: req.body.path,
|
41 | marketplace_builder_file_body: req.files.marketplace_builder_file_body[0].buffer
|
42 | };
|
43 |
|
44 | gateway
|
45 | .sync(formData)
|
46 | .then(body => res.send(body))
|
47 | .catch(error => res.send(error));
|
48 | }
|
49 | );
|
50 |
|
51 | app.listen(port, err => {
|
52 | if (err) {
|
53 | logger.Error(`Something wrong happened when trying to run Express server: ${err}`);
|
54 | }
|
55 |
|
56 | logger.Debug(`Server is listening on ${port}`);
|
57 | logger.Success(`Resources Editor: http://localhost:${port}/gui/editor`);
|
58 | logger.Success(`GraphQL Browser: http://localhost:${port}/gui/graphql`);
|
59 | });
|