]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - shared/utils/logs/logs.ts
Add logs endpoint
[github/Chocobozzz/PeerTube.git] / shared / utils / logs / logs.ts
CommitLineData
fd8710b8
C
1// Thanks: https://stackoverflow.com/a/37014317
2import { stat } from 'fs-extra'
3import { makeGetRequest } from '../requests/requests'
4import { LogLevel } from '../../models/server/log-level.type'
5
6async function mtimeSortFilesDesc (files: string[], basePath: string) {
7 const promises = []
8 const out: { file: string, mtime: number }[] = []
9
10 for (const file of files) {
11 const p = stat(basePath + '/' + file)
12 .then(stats => {
13 if (stats.isFile()) out.push({ file, mtime: stats.mtime.getTime() })
14 })
15
16 promises.push(p)
17 }
18
19 await Promise.all(promises)
20
21 out.sort((a, b) => b.mtime - a.mtime)
22
23 return out
24}
25
26function getLogs (url: string, accessToken: string, startDate: Date, endDate?: Date, level?: LogLevel) {
27 const path = '/api/v1/server/logs'
28
29 return makeGetRequest({
30 url,
31 path,
32 token: accessToken,
33 query: { startDate, endDate, level },
34 statusCodeExpected: 200
35 })
36}
37
38export {
39 mtimeSortFilesDesc,
40 getLogs
41}