1 | var express = require('express'),
|
2 | router = express.Router(),
|
3 | q = require('q'),
|
4 | _ = require('lodash'),
|
5 | jsonResponse = require('q-json-response'),
|
6 | auth = require('./auth'),
|
7 | utils = require('../../utils'),
|
8 | common = require('@screeps/common'),
|
9 | db = common.storage.db,
|
10 | env = common.storage.env,
|
11 | C = common.configManager.config.common.constants;
|
12 |
|
13 |
|
14 | router.get('/orders-index', auth.tokenAuth, jsonResponse(() => {
|
15 | return db['market.orders'].find({active: true})
|
16 | .then((data = []) => {
|
17 | const list = {};
|
18 |
|
19 | data.forEach(({ resourceType, type }) => {
|
20 | list[resourceType] = list[resourceType] || {
|
21 | _id: resourceType,
|
22 | count: 0,
|
23 | buying: 0,
|
24 | selling: 0
|
25 | };
|
26 |
|
27 | type === 'buy' && list[resourceType].buying++;
|
28 | type === 'sell' && list[resourceType].selling++;
|
29 |
|
30 | list[resourceType].count++;
|
31 | })
|
32 |
|
33 | return { list: Object.values(list) };
|
34 | })
|
35 | }));
|
36 |
|
37 | router.get('/orders', auth.tokenAuth, jsonResponse((request) => {
|
38 | return db['market.orders'].find({$and: [{active: true}, {resourceType: request.query.resourceType}]})
|
39 | .then(list => {
|
40 | list.forEach(i => i.price /= 1000);
|
41 | return {list};
|
42 | })
|
43 | }));
|
44 |
|
45 | router.get('/my-orders', auth.tokenAuth, jsonResponse((request) => {
|
46 | return db['market.orders'].find({user: request.user._id})
|
47 | .then(list => {
|
48 | list.forEach(i => i.price /= 1000);
|
49 | return {list};
|
50 | })
|
51 | }));
|
52 |
|
53 | router.get('/stats', auth.tokenAuth, jsonResponse((request) => {
|
54 | return db['market.stats'].findEx({resourceType: request.query.resourceType}, {sort: {date: -1}})
|
55 | .then(data => ({stats: data}))
|
56 | }));
|
57 |
|
58 |
|
59 |
|
60 | module.exports = router; |
\ | No newline at end of file |