Added API for maps...
This commit is contained in:
parent
d7cb68906b
commit
6080b0de4f
69
api/maps.js
Normal file
69
api/maps.js
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
import { Router } from 'express'
|
||||||
|
import Level from '../schemas/Level.js'
|
||||||
|
|
||||||
|
const mapApi = Router()
|
||||||
|
|
||||||
|
mapApi.get(
|
||||||
|
'/count',
|
||||||
|
async (req, res) => {
|
||||||
|
const mapAmount = await Level.find({}).count()
|
||||||
|
|
||||||
|
res.json({
|
||||||
|
success: true,
|
||||||
|
response: mapAmount
|
||||||
|
})
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
mapApi.get(
|
||||||
|
'/get/:map',
|
||||||
|
async (req, res) => {
|
||||||
|
const map = await Level.findOne({ name: req.params.map })
|
||||||
|
|
||||||
|
if (!map)
|
||||||
|
return res.json({
|
||||||
|
success: false,
|
||||||
|
response: "No map found!"
|
||||||
|
})
|
||||||
|
|
||||||
|
res.json({
|
||||||
|
success: true,
|
||||||
|
response: map
|
||||||
|
})
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
mapApi.get(
|
||||||
|
'/search',
|
||||||
|
async (req, res) => {
|
||||||
|
if (!req.query.q)
|
||||||
|
return res.json({
|
||||||
|
success: false,
|
||||||
|
response: "No query ('host/path?q=query') provided!"
|
||||||
|
})
|
||||||
|
|
||||||
|
const name = req.query.q
|
||||||
|
const sort = req.query.sort ?? 'name'
|
||||||
|
const order = req.query.order === "desc" ? -1 : 1
|
||||||
|
const page = req.query.page ?? 1
|
||||||
|
|
||||||
|
const pageCount = Math.ceil((await Level.find({ name: { $regex: name, $options: 'i' }}).count()) / 20)
|
||||||
|
const maps = await Level.find({ name: { $regex: name, $options: 'i' }}).sort([[sort, order]]).limit(20).skip((page - 1) * 20)
|
||||||
|
|
||||||
|
if (!maps[0])
|
||||||
|
return res.json({
|
||||||
|
success: false,
|
||||||
|
response: "No maps found!"
|
||||||
|
})
|
||||||
|
|
||||||
|
res.json({
|
||||||
|
success: true,
|
||||||
|
response: {
|
||||||
|
pageCount,
|
||||||
|
maps
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
export default mapApi
|
Loading…
Reference in New Issue
Block a user