UNPKG

1.85 kBJavaScriptView Raw
1var 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
14router.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
37router.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
45router.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
53router.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
60module.exports = router;
\No newline at end of file