module.exports = (router, mongoose, request, species, animal) => { router.get('/species', (req, res, next) => { species.find({}, (err, result) => { if (err) next(err) else res.json({ data: result, status: 'ok' }) }) }) router.get('/animal', (req, res, next) => { animal.find({}, (err, result) => { if (err) next(err) else res.json({ data: result, status: 'ok' }) }) }) router.get('/animal/childrens/:id', (req, res, next) => { animal.find({ $or: [{ father: req.params.id }, { mother: req.params.id }] }, (err, result) => { if (err) next(err) else res.json({ data: result, status: 'ok' }) }) }) router.get('/animal/parrents/:id', (req, res, next) => { animal.find({ _id: req.params.id }, (err, result) => { if (err) next(err) else animal.find({ $or: [{ _id: result[0].father }, { _id: result[0].mother }] }, (err, result2) => { if (err) next(err) else res.json({ data: result2, status: 'ok' }) }) }) }) router.get('/animal/:id', (req, res, next) => { animal.find({ _id: mongoose.Types.ObjectId(req.params.id) }, (err, result) => { if (err) next(err) else res.json({ data: result[0], status: 'ok' }) }) }) router.get('/animal/:specie/:sex', (req, res, next) => { animal.find({ specie: req.params.specie, sex: req.params.sex }, (err, result) => { if (err) next(err) else res.json({ data: result, status: 'ok' }) }) }) router.post('/animal', (req, res, next) => { let s1 = new animal(req.body) s1.save((err, doc) => { if (err) next(err) else res.json(doc) }) }) router.put('/animal/:id', (req, res, next) => { animal.findOneAndUpdate({ _id: mongoose.Types.ObjectId(req.params.id) }, req.body, { upsert: true }, (err, doc) => { if (err) next(err) else res.json(doc) }) }) router.delete('/animal/:id', (req, res, next) => { animal.findOneAndRemove({ _id: mongoose.Types.ObjectId(req.params.id) }, (err) => { if (err) next(err) else res.json({ status: 'ok' }) }) }) router.get('/info', (req, res, next) => { request('http://arkdedicated.com/dynamicconfig.ini', (error, response, body) => { var acc = {} body.split("\n").map((x) => { let d = x.split("=") acc[d[0]] = d[1] }) res.json(acc) }) }) return router }