]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/models/job/job-interface.ts
Add beautiful loading bar
[github/Chocobozzz/PeerTube.git] / server / models / job / job-interface.ts
CommitLineData
5cd80545 1import * as Bluebird from 'bluebird'
e02643f3 2import * as Sequelize from 'sequelize'
5cd80545
C
3import { Job as FormattedJob, JobCategory, JobState } from '../../../shared/models/job.model'
4import { ResultList } from '../../../shared/models/result-list.model'
ee9e7b61 5
e02643f3 6export namespace JobMethods {
5cd80545
C
7 export type ListWithLimitByCategory = (limit: number, state: JobState, category: JobCategory) => Bluebird<JobInstance[]>
8 export type ListForApi = (start: number, count: number, sort: string) => Bluebird< ResultList<JobInstance> >
9
10 export type ToFormattedJSON = (this: JobInstance) => FormattedJob
e02643f3
C
11}
12
13export interface JobClass {
e4f97bab 14 listWithLimitByCategory: JobMethods.ListWithLimitByCategory
5cd80545 15 listForApi: JobMethods.ListForApi,
e02643f3
C
16}
17
18export interface JobAttributes {
ee9e7b61 19 state: JobState
5cd80545 20 category: JobCategory
e02643f3 21 handlerName: string
571389d4 22 handlerInputData: any
e02643f3
C
23}
24
25export interface JobInstance extends JobClass, JobAttributes, Sequelize.Instance<JobAttributes> {
26 id: number
27 createdAt: Date
28 updatedAt: Date
5cd80545
C
29
30 toFormattedJSON: JobMethods.ToFormattedJSON
e02643f3
C
31}
32
33export interface JobModel extends JobClass, Sequelize.Model<JobInstance, JobAttributes> {}