36 lines
1,018 B
JavaScript
36 lines
1,018 B
JavaScript
import config from '../../base/config.mjs'
|
|
import Client from '../../base/media/client.mjs'
|
|
import { deleteFile, uploadFile } from '../../base/media/upload.mjs'
|
|
import { parseVideos, parseVideo } from './util.mjs'
|
|
|
|
export default class VideoRoutes {
|
|
constructor(opts = {}) {
|
|
Object.assign(this, {
|
|
uploadFile: uploadFile,
|
|
deleteFile: deleteFile,
|
|
})
|
|
}
|
|
|
|
register(server) {
|
|
server.flaska.get('/api/videos', server.authenticate(), this.getVideos.bind(this))
|
|
server.flaska.get('/api/videos/uploadToken', server.authenticate(), this.getUploadToken.bind(this))
|
|
}
|
|
|
|
/** GET: /api/videos */
|
|
async getVideos(ctx) {
|
|
console.log(ctx.state.auth_token)
|
|
let res = await ctx.db.safeCallProc('filadelfia_archive.videos_auth_get_all', [ctx.state.auth_token])
|
|
|
|
ctx.body = {
|
|
videos: parseVideos(res.results[0]),
|
|
}
|
|
}
|
|
|
|
async getUploadToken(ctx) {
|
|
const media = config.get('media')
|
|
|
|
return {
|
|
token: Client.createJwt({ iss: media.iss }, media.secret),
|
|
}
|
|
}
|
|
}
|