get_titles_for_language added, celebrate input value check added

This commit is contained in:
C
2023-02-22 18:17:44 +05:00
parent a40fffd752
commit e3264f5e02
3 changed files with 41 additions and 5 deletions
+14 -2
View File
@@ -2,7 +2,7 @@ const database = require('../database/database.js')
const not_found_error = require('../../lib/src/http/errors/not_found_error')
const get_titles = async (req, res, next) => {
var titles = await database.get_titles()
var titles = await database.get_titles(req.query.start, req.query.count)
if (!titles) {
next(new not_found_error('titles not found'))
@@ -12,6 +12,18 @@ const get_titles = async (req, res, next) => {
res.json(titles)
}
const get_titles_for_language = async (req, res, next) => {
var titles = await database.get_titles_for_language(req.query.start, req.query.count, req.query.language.toLowerCase())
if (!titles) {
next(new not_found_error('titles not found'))
return
}
res.json(titles)
}
module.exports = {
get_titles
get_titles,
get_titles_for_language
}
+11 -1
View File
@@ -29,6 +29,15 @@ const get_titles = async (start, count) => {
return (!titles.length) ? null : titles
}
const get_titles_for_language = async (start, count, language) => {
var db = await get_db()
if (!db) {
return null
}
var titles = await db.collection('title').find({language:language}).skip(parseInt(start)).limit(parseInt(count)).toArray()
return (!titles.length) ? null : titles
}
const get_free_session_servers = async (title) => {
var db = await get_db()
if (!db) {
@@ -119,5 +128,6 @@ module.exports = {
add_active_session,
generate_session_id,
remove_active_session,
get_session_websocket_url
get_session_websocket_url,
get_titles_for_language
}
+16 -2
View File
@@ -1,6 +1,20 @@
const router = require('express').Router()
const {get_titles} = require('../controllers/title')
const { celebrate, Joi, Segments} = require('celebrate')
const {get_titles, get_titles_for_language} = require('../controllers/title')
router.get('/get', get_titles)
router.get('/get', celebrate({
[Segments.QUERY]: Joi.object().keys({
start: Joi.string().required(),
count: Joi.string().required()
})
}), get_titles)
router.get('/get_for_language', celebrate({
[Segments.QUERY]: Joi.object().keys({
start: Joi.string().required(),
count: Joi.string().required(),
language: Joi.string().required()
})
}), get_titles_for_language)
module.exports = router