juice-shop

Форк
0
/
challenge.ts 
64 строки · 1.7 Кб
1
/*
2
 * Copyright (c) 2014-2024 Bjoern Kimminich & the OWASP Juice Shop contributors.
3
 * SPDX-License-Identifier: MIT
4
 */
5

6
/* jslint node: true */
7
import {
8
  Model,
9
  type InferAttributes,
10
  type InferCreationAttributes,
11
  DataTypes,
12
  type CreationOptional,
13
  type Sequelize
14
} from 'sequelize'
15
class Challenge extends Model<
16
InferAttributes<Challenge>,
17
InferCreationAttributes<Challenge>
18
> {
19
  declare id: CreationOptional<number>
20
  declare name: string
21
  declare category: string
22
  declare description: string
23
  declare difficulty: number
24
  declare hint: string | null
25
  declare hintUrl: string | null
26
  declare mitigationUrl: CreationOptional<string> | null
27
  declare key: string
28
  declare disabledEnv: CreationOptional<string> | null
29
  declare tutorialOrder: CreationOptional<number> | null
30
  declare tags: string | undefined
31
  declare solved: CreationOptional<boolean>
32
  declare codingChallengeStatus: CreationOptional<number>
33
}
34

35
const ChallengeModelInit = (sequelize: Sequelize) => {
36
  Challenge.init(
37
    {
38
      id: {
39
        type: DataTypes.INTEGER,
40
        primaryKey: true,
41
        autoIncrement: true
42
      },
43
      key: DataTypes.STRING,
44
      name: DataTypes.STRING,
45
      category: DataTypes.STRING,
46
      tags: DataTypes.STRING,
47
      description: DataTypes.STRING,
48
      difficulty: DataTypes.INTEGER,
49
      hint: DataTypes.STRING,
50
      hintUrl: DataTypes.STRING,
51
      mitigationUrl: DataTypes.STRING,
52
      solved: DataTypes.BOOLEAN,
53
      disabledEnv: DataTypes.STRING,
54
      tutorialOrder: DataTypes.NUMBER,
55
      codingChallengeStatus: DataTypes.NUMBER
56
    },
57
    {
58
      tableName: 'Challenges',
59
      sequelize
60
    }
61
  )
62
}
63

64
export { Challenge as ChallengeModel, ChallengeModelInit }
65

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.