]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/models/job/job.ts
Better view counter
[github/Chocobozzz/PeerTube.git] / server / models / job / job.ts
index 60a6c551b4cf4c8695a3f0532902cc1503bb9d95..c2d088090accc4068bce6d45694a69b10190a8ff 100644 (file)
@@ -1,19 +1,19 @@
 import { values } from 'lodash'
 import * as Sequelize from 'sequelize'
 
-import { JOB_STATES } from '../../initializers'
+import { JOB_STATES, JOB_CATEGORIES } from '../../initializers'
 
 import { addMethodsToModel } from '../utils'
 import {
-  JobClass,
   JobInstance,
   JobAttributes,
 
   JobMethods
 } from './job-interface'
+import { JobCategory, JobState } from '../../../shared/models/job.model'
 
 let Job: Sequelize.Model<JobInstance, JobAttributes>
-let listWithLimit: JobMethods.ListWithLimit
+let listWithLimitByCategory: JobMethods.ListWithLimitByCategory
 
 export default function defineJob (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.DataTypes) {
   Job = sequelize.define<JobInstance, JobAttributes>('Job',
@@ -22,6 +22,10 @@ export default function defineJob (sequelize: Sequelize.Sequelize, DataTypes: Se
         type: DataTypes.ENUM(values(JOB_STATES)),
         allowNull: false
       },
+      category: {
+        type: DataTypes.ENUM(values(JOB_CATEGORIES)),
+        allowNull: false
+      },
       handlerName: {
         type: DataTypes.STRING,
         allowNull: false
@@ -34,13 +38,13 @@ export default function defineJob (sequelize: Sequelize.Sequelize, DataTypes: Se
     {
       indexes: [
         {
-          fields: [ 'state' ]
+          fields: [ 'state', 'category' ]
         }
       ]
     }
   )
 
-  const classMethods = [ listWithLimit ]
+  const classMethods = [ listWithLimitByCategory ]
   addMethodsToModel(Job, classMethods)
 
   return Job
@@ -48,16 +52,17 @@ export default function defineJob (sequelize: Sequelize.Sequelize, DataTypes: Se
 
 // ---------------------------------------------------------------------------
 
-listWithLimit = function (limit: number, state: string, callback: JobMethods.ListWithLimitCallback) {
+listWithLimitByCategory = function (limit: number, state: JobState, jobCategory: JobCategory) {
   const query = {
     order: [
       [ 'id', 'ASC' ]
     ],
     limit: limit,
     where: {
-      state
+      state,
+      category: jobCategory
     }
   }
 
-  return Job.findAll(query).asCallback(callback)
+  return Job.findAll(query)
 }