You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

80 lines
2.6 KiB

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
}