mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-06-24 09:49:24 +02:00
Update API JS docs
This commit is contained in:
parent
2472b86284
commit
e53ac6566b
24 changed files with 390 additions and 175 deletions
|
@ -1,16 +1,36 @@
|
|||
const { Request, Response, NextFunction } = require('express')
|
||||
const Logger = require('../Logger')
|
||||
const SocketAuthority = require('../SocketAuthority')
|
||||
const Database = require('../Database')
|
||||
|
||||
/**
|
||||
* @typedef RequestUserObject
|
||||
* @property {import('../models/User')} user
|
||||
*
|
||||
* @typedef {Request & RequestUserObject} RequestWithUser
|
||||
*/
|
||||
|
||||
class EmailController {
|
||||
constructor() {}
|
||||
|
||||
/**
|
||||
* GET: /api/emails/settings
|
||||
*
|
||||
* @param {RequestWithUser} req
|
||||
* @param {Response} res
|
||||
*/
|
||||
getSettings(req, res) {
|
||||
res.json({
|
||||
settings: Database.emailSettings
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* PATCH: /api/emails/settings
|
||||
*
|
||||
* @param {RequestWithUser} req
|
||||
* @param {Response} res
|
||||
*/
|
||||
async updateSettings(req, res) {
|
||||
const updated = Database.emailSettings.update(req.body)
|
||||
if (updated) {
|
||||
|
@ -21,10 +41,24 @@ class EmailController {
|
|||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* POST: /api/emails/test
|
||||
*
|
||||
* @this {import('../routers/ApiRouter')}
|
||||
*
|
||||
* @param {RequestWithUser} req
|
||||
* @param {Response} res
|
||||
*/
|
||||
async sendTest(req, res) {
|
||||
this.emailManager.sendTest(res)
|
||||
}
|
||||
|
||||
/**
|
||||
* POST: /api/emails/ereader-devices
|
||||
*
|
||||
* @param {RequestWithUser} req
|
||||
* @param {Response} res
|
||||
*/
|
||||
async updateEReaderDevices(req, res) {
|
||||
if (!req.body.ereaderDevices || !Array.isArray(req.body.ereaderDevices)) {
|
||||
return res.status(400).send('Invalid payload. ereaderDevices array required')
|
||||
|
@ -52,11 +86,12 @@ class EmailController {
|
|||
}
|
||||
|
||||
/**
|
||||
* POST: /api/emails/send-ebook-to-device
|
||||
* Send ebook to device
|
||||
* User must have access to device and library item
|
||||
*
|
||||
* @param {import('express').Request} req
|
||||
* @param {import('express').Response} res
|
||||
* @param {RequestWithUser} req
|
||||
* @param {Response} res
|
||||
*/
|
||||
async sendEBookToDevice(req, res) {
|
||||
Logger.debug(`[EmailController] Send ebook to device requested by user "${req.user.username}" for libraryItemId=${req.body.libraryItemId}, deviceName=${req.body.deviceName}`)
|
||||
|
@ -89,6 +124,12 @@ class EmailController {
|
|||
this.emailManager.sendEBookToDevice(ebookFile, device, res)
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {RequestWithUser} req
|
||||
* @param {Response} res
|
||||
* @param {NextFunction} next
|
||||
*/
|
||||
adminMiddleware(req, res, next) {
|
||||
if (!req.user.isAdminOrUp) {
|
||||
return res.sendStatus(404)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue