From ab96f8d947bb3b55d08cd9eeb6656a7a66bdd6de Mon Sep 17 00:00:00 2001 From: ShubhamPalriwala Date: Thu, 17 Feb 2022 16:35:18 +0530 Subject: [PATCH] lint and cleanup --- data/datacreator.ts | 95 ++++++++++++------------- models/address.ts | 61 ++++++++-------- models/basket.ts | 50 ++++++------- models/basketitem.ts | 32 ++++----- models/captcha.ts | 28 ++++---- models/card.ts | 54 +++++++------- models/challenge.ts | 50 ++++++------- models/complaint.ts | 36 +++++----- models/delivery.ts | 34 ++++----- models/feedback.ts | 66 ++++++++--------- models/imageCaptcha.ts | 36 +++++----- models/index.ts | 24 +++---- models/memory.ts | 36 +++++----- models/privacyRequests.ts | 38 +++++----- models/product.ts | 68 +++++++++--------- models/quantity.ts | 44 ++++++------ models/recycle.ts | 46 ++++++------ models/securityAnswer.ts | 48 ++++++------- models/securityQuestion.ts | 29 ++++---- models/user.ts | 118 +++++++++++++++---------------- models/wallet.ts | 38 +++++----- routes/2fa.ts | 14 ++-- routes/authenticatedUsers.ts | 10 +-- routes/basketItems.ts | 10 +-- routes/captcha.ts | 7 +- routes/changePassword.ts | 5 +- routes/chatbot.ts | 6 +- routes/coupon.ts | 2 +- routes/createProductReviews.ts | 4 +- routes/dataErasure.ts | 8 +-- routes/dataExport.ts | 56 +++++++-------- routes/deluxe.ts | 2 + routes/imageCaptcha.ts | 5 +- routes/login.ts | 2 + routes/metrics.ts | 32 +++++++-- routes/order.ts | 25 ++++--- routes/orderHistory.ts | 4 +- routes/payment.ts | 62 ++++++++-------- routes/profileImageFileUpload.ts | 2 +- routes/profileImageUrlUpload.ts | 8 +-- routes/recycles.ts | 2 + routes/resetPassword.ts | 3 +- routes/saveLoginIp.ts | 2 - routes/search.ts | 2 + routes/securityQuestion.ts | 4 +- routes/updateUserProfile.ts | 6 +- routes/userProfile.ts | 8 +-- routes/verify.ts | 30 ++++++++ routes/wallet.ts | 1 - 49 files changed, 701 insertions(+), 652 deletions(-) diff --git a/data/datacreator.ts b/data/datacreator.ts index 68dbd157edf..11e49dc9ab3 100644 --- a/data/datacreator.ts +++ b/data/datacreator.ts @@ -20,8 +20,7 @@ import SecurityAnswerModel from 'models/securityAnswer' import SecurityQuestionModel from 'models/securityQuestion' import UserModel from 'models/user' import WalletModel from 'models/wallet' -import * as models from '../models/index' -import { Address, Card, Challenge, Delivery, Memory, Product, Recycle, SecurityQuestion, User } from './types' +import { Address, Card, Challenge, Delivery, Memory, Product, SecurityQuestion, User } from './types' const datacache = require('./datacache') const config = require('config') const utils = require('../lib/utils') @@ -137,8 +136,8 @@ async function createUsers () { async function createWallet () { const users = await loadStaticData('users') return await Promise.all( - users.map((user: User, index: number) => { - return WalletModel.create({ + users.map(async (user: User, index: number) => { + return await WalletModel.create({ UserId: index + 1, balance: user.walletBalance !== undefined ? user.walletBalance : 0 }).catch((err: unknown) => { @@ -169,8 +168,8 @@ async function createDeliveryMethods () { } function createAddresses (UserId: number, addresses: Address[]) { - addresses.map((address) => { - return AddressModel.create({ + addresses.map(async (address) => { + return await AddressModel.create({ UserId: UserId, country: address.country, fullName: address.fullName, @@ -186,11 +185,11 @@ function createAddresses (UserId: number, addresses: Address[]) { } async function createCards (UserId: number, cards: Card[]) { - return await Promise.all(cards.map((card) => { - return CardModel.create({ + return await Promise.all(cards.map(async (card) => { + return await CardModel.create({ UserId: UserId, fullName: card.fullName, - cardNum: card.cardNum, + cardNum: Number(card.cardNum), expMonth: card.expMonth, expYear: card.expYear }).catch((err: unknown) => { @@ -199,8 +198,8 @@ async function createCards (UserId: number, cards: Card[]) { })) } -function deleteUser (userId: number) { - return UserModel.destroy({ where: { id: userId } }).catch((err: unknown) => { +async function deleteUser (userId: number) { + return await UserModel.destroy({ where: { id: userId } }).catch((err: unknown) => { logger.error(`Could not perform soft delete for the user ${userId}: ${utils.getErrorMessage(err)}`) }) } @@ -221,7 +220,7 @@ async function createRandomFakeUsers () { } return await Promise.all(new Array(config.get('application.numberOfRandomFakeUsers')).fill(0).map( - () => UserModel.create({ + async () => await UserModel.create({ email: getGeneratedRandomFakeUserEmail(), password: makeRandomString(5) }) @@ -230,8 +229,8 @@ async function createRandomFakeUsers () { async function createQuantity () { return await Promise.all( - config.get('products').map((product: Product, index: number) => { - return QuantityModel.create({ + config.get('products').map(async (product: Product, index: number) => { + return await QuantityModel.create({ ProductId: index + 1, quantity: product.quantity !== undefined ? product.quantity : Math.floor(Math.random() * 70 + 30), limitPerUser: product.limitPerUser ?? null @@ -251,7 +250,7 @@ async function createMemories () { }).catch((err: unknown) => { logger.error(`Could not create memory: ${utils.getErrorMessage(err)}`) }), - ...utils.thaw(config.get('memories')).map((memory: Memory) => { + ...utils.thaw(config.get('memories')).map(async (memory: Memory) => { let tmpImageFileName = memory.image if (utils.isUrl(memory.image)) { const imageUrl = memory.image @@ -259,14 +258,14 @@ async function createMemories () { utils.downloadToFile(imageUrl, 'frontend/dist/frontend/assets/public/images/uploads/' + tmpImageFileName) } if (memory.geoStalkingMetaSecurityQuestion && memory.geoStalkingMetaSecurityAnswer) { - createSecurityAnswer(datacache.users.john.id, memory.geoStalkingMetaSecurityQuestion, memory.geoStalkingMetaSecurityAnswer) + await createSecurityAnswer(datacache.users.john.id, memory.geoStalkingMetaSecurityQuestion, memory.geoStalkingMetaSecurityAnswer) memory.user = 'john' } if (memory.geoStalkingVisualSecurityQuestion && memory.geoStalkingVisualSecurityAnswer) { - createSecurityAnswer(datacache.users.emma.id, memory.geoStalkingVisualSecurityQuestion, memory.geoStalkingVisualSecurityAnswer) + await createSecurityAnswer(datacache.users.emma.id, memory.geoStalkingVisualSecurityQuestion, memory.geoStalkingVisualSecurityAnswer) memory.user = 'emma' } - return MemoryModel.create({ + return await MemoryModel.create({ imagePath: 'assets/public/images/uploads/' + tmpImageFileName, caption: memory.caption, UserId: datacache.users[memory.user].id @@ -325,19 +324,19 @@ async function createProducts () { return await Promise.all( products.map( - ({ reviews = [], useForChristmasSpecialChallenge = false, urlForProductTamperingChallenge = false, fileForRetrieveBlueprintChallenge = false, ...product }) => - ProductModel.create({ - name:product.name, - description:product.description, - price:product.price, - deluxePrice:product.deluxePrice , - image:product.image, + async ({ reviews = [], useForChristmasSpecialChallenge = false, urlForProductTamperingChallenge = false, fileForRetrieveBlueprintChallenge = false, ...product }) => + await ProductModel.create({ + name: product.name, + description: product.description, + price: product.price, + deluxePrice: product.deluxePrice, + image: product.image }).catch( (err: unknown) => { logger.error(`Could not insert Product ${product.name}: ${utils.getErrorMessage(err)}`) } - ).then((persistedProduct: ProductModel | void) => { - if(persistedProduct){ + ).then((persistedProduct) => { + if (persistedProduct) { if (useForChristmasSpecialChallenge) { datacache.products.christmasSpecial = persistedProduct } if (urlForProductTamperingChallenge) { datacache.products.osaft = persistedProduct @@ -354,12 +353,12 @@ async function createProducts () { datacache.challenges.retrieveBlueprintChallenge.hint, persistedProduct) }) - } + } } - if(!persistedProduct){ - throw new Error("No persisted product found!"); + if (!persistedProduct) { + throw new Error('No persisted product found!') } - return persistedProduct; + return persistedProduct }) .then(async ({ id }: { id: number }) => await Promise.all( @@ -400,9 +399,9 @@ async function createBaskets () { ] return await Promise.all( - baskets.map(basket => { - return BasketModel.create({ - UserId:basket.UserId + baskets.map(async basket => { + return await BasketModel.create({ + UserId: basket.UserId }).catch((err: unknown) => { logger.error(`Could not insert Basket for UserId ${basket.UserId}: ${utils.getErrorMessage(err)}`) }) @@ -455,8 +454,8 @@ async function createBasketItems () { ] return await Promise.all( - basketItems.map(basketItem => { - return BasketItemModel.create(basketItem).catch((err: unknown) => { + basketItems.map(async basketItem => { + return await BasketItemModel.create(basketItem).catch((err: unknown) => { logger.error(`Could not insert BasketItem for BasketId ${basketItem.BasketId}: ${utils.getErrorMessage(err)}`) }) }) @@ -484,19 +483,19 @@ async function createAnonymousFeedback () { ] return await Promise.all( - feedbacks.map((feedback) => createFeedback(null, feedback.comment, feedback.rating)) + feedbacks.map(async (feedback) => await createFeedback(null, feedback.comment, feedback.rating)) ) } -function createFeedback (UserId: number | null, comment: string, rating: number, author?: string) { +async function createFeedback (UserId: number | null, comment: string, rating: number, author?: string) { const authoredComment = author ? `${comment} (***${author.slice(3)})` : `${comment} (anonymous)` - return FeedbackModel.create({ UserId, comment: authoredComment, rating }).catch((err: unknown) => { + return await FeedbackModel.create({ UserId, comment: authoredComment, rating }).catch((err: unknown) => { logger.error(`Could not insert Feedback ${authoredComment} mapped to UserId ${UserId}: ${utils.getErrorMessage(err)}`) }) } -function createComplaints () { - return ComplaintModel.create({ +async function createComplaints () { + return await ComplaintModel.create({ UserId: 3, message: 'I\'ll build my own eCommerce business! With Black Jack! And Hookers!' }).catch((err: unknown) => { @@ -571,17 +570,17 @@ async function createRecycleItem () { } ] return await Promise.all( - recycles.map((recycle) => createRecycle(recycle)) + recycles.map(async (recycle) => await createRecycle(recycle)) ) } -function createRecycle (data: { UserId: number; quantity: number; AddressId: number; date: string; isPickup: boolean }) { - return RecycleModel.create({ - UserId:data.UserId, +async function createRecycle (data: { UserId: number, quantity: number, AddressId: number, date: string, isPickup: boolean }) { + return await RecycleModel.create({ + UserId: data.UserId, AddressId: data.AddressId, quantity: data.quantity, isPickup: data.isPickup, - date: data.date, + date: data.date }).catch((err: unknown) => { logger.error(`Could not insert Recycling Model: ${utils.getErrorMessage(err)}`) }) @@ -601,8 +600,8 @@ async function createSecurityQuestions () { ) } -function createSecurityAnswer (UserId: number, SecurityQuestionId: number, answer: string) { - return SecurityAnswerModel.create({ SecurityQuestionId, UserId, answer }).catch((err: unknown) => { +async function createSecurityAnswer (UserId: number, SecurityQuestionId: number, answer: string) { + return await SecurityAnswerModel.create({ SecurityQuestionId, UserId, answer }).catch((err: unknown) => { logger.error(`Could not insert SecurityAnswer ${answer} mapped to UserId ${UserId}: ${utils.getErrorMessage(err)}`) }) } diff --git a/models/address.ts b/models/address.ts index 9015faf1383..056c2d08b36 100644 --- a/models/address.ts +++ b/models/address.ts @@ -8,25 +8,24 @@ import { InferAttributes, InferCreationAttributes, Model, - DataTypes, - NonAttribute, -} from "sequelize"; -import { sequelize } from "./index"; -import UserModel from "./user"; + DataTypes +} from 'sequelize' +import { sequelize } from './index' +import UserModel from './user' /* jslint node: true */ class AddressModel extends Model< - InferAttributes, - InferCreationAttributes +InferAttributes, +InferCreationAttributes > { - declare UserId: number; - declare id: CreationOptional; - declare fullName: string; - declare mobileNum: number; - declare zipCode: string; - declare streetAddress: string; - declare city: string; - declare state: string | null; - declare country: string; + declare UserId: number + declare id: CreationOptional + declare fullName: string + declare mobileNum: number + declare zipCode: string + declare streetAddress: string + declare city: string + declare state: string | null + declare country: string } AddressModel.init( @@ -35,44 +34,44 @@ AddressModel.init( id: { type: DataTypes.INTEGER, primaryKey: true, - autoIncrement: true, + autoIncrement: true }, fullName: { - type: DataTypes.STRING, + type: DataTypes.STRING }, mobileNum: { type: DataTypes.INTEGER, validate: { isInt: true, min: 1000000, - max: 9999999999, - }, + max: 9999999999 + } }, zipCode: { type: DataTypes.STRING, validate: { - len: [1, 8], - }, + len: [1, 8] + } }, streetAddress: { type: DataTypes.STRING, validate: { - len: [1, 160], - }, + len: [1, 160] + } }, city: DataTypes.STRING, state: DataTypes.STRING, - country: DataTypes.STRING, + country: DataTypes.STRING }, { - tableName: "Address", - sequelize, + tableName: 'Address', + sequelize } -); +) AddressModel.belongsTo(UserModel, { constraints: true, - foreignKeyConstraint: true, -}); + foreignKeyConstraint: true +}) -export default AddressModel; +export default AddressModel diff --git a/models/basket.ts b/models/basket.ts index f904e0bbacf..2c22e0463fb 100644 --- a/models/basket.ts +++ b/models/basket.ts @@ -11,49 +11,49 @@ import { InferCreationAttributes, DataTypes, CreationOptional, - NonAttribute, -} from "sequelize"; -import { sequelize } from "./index"; -import BasketItemModel from "./basketitem"; -import UserModel from "./user"; -import ProductModel from "./product"; + NonAttribute +} from 'sequelize' +import { sequelize } from './index' +import BasketItemModel from './basketitem' +import UserModel from './user' +import ProductModel from './product' class BasketModel extends Model< - InferAttributes, - InferCreationAttributes +InferAttributes, +InferCreationAttributes > { - declare UserId: number; - declare id: CreationOptional; - declare coupon: CreationOptional | null; - declare Products?: NonAttribute; + declare UserId: number + declare id: CreationOptional + declare coupon: CreationOptional | null + declare Products?: NonAttribute } BasketModel.init( - //@ts-expect-error + // @ts-expect-error { id: { type: DataTypes.INTEGER, primaryKey: true, - autoIncrement: true, + autoIncrement: true }, - coupon: DataTypes.STRING, + coupon: DataTypes.STRING }, { - tableName: "Basket", - sequelize, + tableName: 'Basket', + sequelize } -); +) BasketModel.belongsTo(UserModel, { constraints: true, - foreignKeyConstraint: true, -}); + foreignKeyConstraint: true +}) BasketModel.belongsToMany(ProductModel, { through: BasketItemModel, foreignKey: { - name: "BasketId", - //TODO noUpdate: true - }, -}); + name: 'BasketId' + // TODO noUpdate: true + } +}) -export default BasketModel; +export default BasketModel diff --git a/models/basketitem.ts b/models/basketitem.ts index a89feea5015..b52a767a611 100644 --- a/models/basketitem.ts +++ b/models/basketitem.ts @@ -9,34 +9,34 @@ import { InferAttributes, InferCreationAttributes, DataTypes, - CreationOptional, -} from "sequelize"; -import { sequelize } from "./index"; + CreationOptional +} from 'sequelize' +import { sequelize } from './index' class BasketItemModel extends Model< - InferAttributes, - InferCreationAttributes +InferAttributes, +InferCreationAttributes > { - declare ProductId: number; - declare BasketId: number; - declare id: CreationOptional; - declare quantity: number; + declare ProductId: number + declare BasketId: number + declare id: CreationOptional + declare quantity: number } BasketItemModel.init( - //@ts-expect-error + // @ts-expect-error { id: { type: DataTypes.INTEGER, primaryKey: true, - autoIncrement: true, + autoIncrement: true }, - quantity: DataTypes.INTEGER, + quantity: DataTypes.INTEGER }, { - tableName: "BasketItem", - sequelize, + tableName: 'BasketItem', + sequelize } -); +) -export default BasketItemModel; +export default BasketItemModel diff --git a/models/captcha.ts b/models/captcha.ts index c6d38d8cbe4..a08746e3090 100644 --- a/models/captcha.ts +++ b/models/captcha.ts @@ -7,17 +7,17 @@ import { Model, InferAttributes, InferCreationAttributes, - DataTypes, -} from "sequelize"; -import { sequelize } from "./index"; + DataTypes +} from 'sequelize' +import { sequelize } from './index' class CaptchaModel extends Model< - InferAttributes, - InferCreationAttributes +InferAttributes, +InferCreationAttributes > { - declare captchaId: number; - declare captcha: string; - declare answer: string; + declare captchaId: number + declare captcha: string + declare answer: string } CaptchaModel.init( @@ -25,15 +25,15 @@ CaptchaModel.init( captchaId: { type: DataTypes.INTEGER, primaryKey: true, - autoIncrement: true, + autoIncrement: true }, captcha: DataTypes.STRING, - answer: DataTypes.STRING, + answer: DataTypes.STRING }, { - tableName: "Captcha", - sequelize, + tableName: 'Captcha', + sequelize } -); +) -export default CaptchaModel; +export default CaptchaModel diff --git a/models/card.ts b/models/card.ts index 92f9e4ffd29..ac44423fb70 100644 --- a/models/card.ts +++ b/models/card.ts @@ -9,30 +9,30 @@ import { InferAttributes, InferCreationAttributes, DataTypes, - CreationOptional, -} from "sequelize"; -import { sequelize } from "./index"; -import UserModel from "./user"; + CreationOptional +} from 'sequelize' +import { sequelize } from './index' +import UserModel from './user' class CardModel extends Model< - InferAttributes, - InferCreationAttributes +InferAttributes, +InferCreationAttributes > { - declare UserId: number; - declare id: CreationOptional; - declare fullName: string; - declare cardNum: number; - declare expMonth: number; - declare expYear: number; + declare UserId: number + declare id: CreationOptional + declare fullName: string + declare cardNum: number + declare expMonth: number + declare expYear: number } CardModel.init( - //@ts-expect-error + // @ts-expect-error { id: { type: DataTypes.INTEGER, primaryKey: true, - autoIncrement: true, + autoIncrement: true }, fullName: DataTypes.STRING, cardNum: { @@ -40,34 +40,34 @@ CardModel.init( validate: { isInt: true, min: 1000000000000000, - max: 9999999999999998, - }, + max: 9999999999999998 + } }, expMonth: { type: DataTypes.INTEGER, validate: { isInt: true, min: 1, - max: 12, - }, + max: 12 + } }, expYear: { type: DataTypes.INTEGER, validate: { isInt: true, min: 2080, - max: 2099, - }, - }, + max: 2099 + } + } }, { - tableName: "Card", - sequelize, + tableName: 'Card', + sequelize } -); +) CardModel.belongsTo(UserModel, { constraints: true, - foreignKeyConstraint: true, -}); + foreignKeyConstraint: true +}) -export default CardModel; +export default CardModel diff --git a/models/challenge.ts b/models/challenge.ts index ca4008e6c43..52a8e64a348 100644 --- a/models/challenge.ts +++ b/models/challenge.ts @@ -9,27 +9,27 @@ import { InferAttributes, InferCreationAttributes, DataTypes, - CreationOptional, -} from "sequelize"; -import { sequelize } from "./index"; + CreationOptional +} from 'sequelize' +import { sequelize } from './index' class ChallengeModel extends Model< - InferAttributes, - InferCreationAttributes +InferAttributes, +InferCreationAttributes > { - declare id: CreationOptional; - declare name: string; - declare category: string; - declare description: string; - declare difficulty: number; - declare hint: string | null; - declare hintUrl: string | null; - declare mitigationUrl: CreationOptional | null; - declare key: string; - declare disabledEnv: CreationOptional; - declare tutorialOrder: CreationOptional | null; - declare tags: string | undefined; - declare solved: CreationOptional; - declare codingChallengeStatus: CreationOptional; + declare id: CreationOptional + declare name: string + declare category: string + declare description: string + declare difficulty: number + declare hint: string | null + declare hintUrl: string | null + declare mitigationUrl: CreationOptional | null + declare key: string + declare disabledEnv: CreationOptional + declare tutorialOrder: CreationOptional | null + declare tags: string | undefined + declare solved: CreationOptional + declare codingChallengeStatus: CreationOptional } ChallengeModel.init( @@ -37,7 +37,7 @@ ChallengeModel.init( id: { type: DataTypes.INTEGER, primaryKey: true, - autoIncrement: true, + autoIncrement: true }, key: DataTypes.STRING, name: DataTypes.STRING, @@ -51,12 +51,12 @@ ChallengeModel.init( solved: DataTypes.BOOLEAN, disabledEnv: DataTypes.STRING, tutorialOrder: DataTypes.NUMBER, - codingChallengeStatus: DataTypes.NUMBER, + codingChallengeStatus: DataTypes.NUMBER }, { - tableName: "Challenge", - sequelize, + tableName: 'Challenge', + sequelize } -); +) -export default ChallengeModel; +export default ChallengeModel diff --git a/models/complaint.ts b/models/complaint.ts index 8c2783b855f..c1369542b6e 100644 --- a/models/complaint.ts +++ b/models/complaint.ts @@ -10,19 +10,19 @@ import { InferAttributes, InferCreationAttributes, DataTypes, - CreationOptional, -} from "sequelize"; -import { sequelize } from "./index"; -import UserModel from "./user"; + CreationOptional +} from 'sequelize' +import { sequelize } from './index' +import UserModel from './user' class ComplaintModel extends Model< - InferAttributes, - InferCreationAttributes +InferAttributes, +InferCreationAttributes > { - declare UserId: number; - declare id: CreationOptional; - declare message: string; - declare file: CreationOptional; + declare UserId: number + declare id: CreationOptional + declare message: string + declare file: CreationOptional } ComplaintModel.init( @@ -31,20 +31,20 @@ ComplaintModel.init( id: { type: DataTypes.INTEGER, primaryKey: true, - autoIncrement: true, + autoIncrement: true }, message: DataTypes.STRING, - file: DataTypes.STRING, + file: DataTypes.STRING }, { - tableName: "Complaint", - sequelize, + tableName: 'Complaint', + sequelize } -); +) ComplaintModel.belongsTo(UserModel, { constraints: true, - foreignKeyConstraint: true, -}); + foreignKeyConstraint: true +}) -export default ComplaintModel; +export default ComplaintModel diff --git a/models/delivery.ts b/models/delivery.ts index 87062c37413..5c18069f69b 100644 --- a/models/delivery.ts +++ b/models/delivery.ts @@ -8,20 +8,20 @@ import { InferAttributes, InferCreationAttributes, DataTypes, - CreationOptional, -} from "sequelize"; -import { sequelize } from "./index"; + CreationOptional +} from 'sequelize' +import { sequelize } from './index' class DeliveryModel extends Model< - InferAttributes, - InferCreationAttributes +InferAttributes, +InferCreationAttributes > { - declare id: CreationOptional; - declare name: string; - declare price: number; - declare deluxePrice: number; - declare eta: number; - declare icon: string; + declare id: CreationOptional + declare name: string + declare price: number + declare deluxePrice: number + declare eta: number + declare icon: string } DeliveryModel.init( @@ -29,18 +29,18 @@ DeliveryModel.init( id: { type: DataTypes.INTEGER, primaryKey: true, - autoIncrement: true, + autoIncrement: true }, name: DataTypes.STRING, price: DataTypes.FLOAT, deluxePrice: DataTypes.FLOAT, eta: DataTypes.FLOAT, - icon: DataTypes.STRING, + icon: DataTypes.STRING }, { - tableName: "Delivery", - sequelize, + tableName: 'Delivery', + sequelize } -); +) -export default DeliveryModel; +export default DeliveryModel diff --git a/models/feedback.ts b/models/feedback.ts index 2563996c3de..c4f576a09bc 100644 --- a/models/feedback.ts +++ b/models/feedback.ts @@ -4,28 +4,28 @@ */ /* jslint node: true */ -import utils = require("../lib/utils"); -const security = require("../lib/insecurity"); -const challenges = require("../data/datacache").challenges; +import utils = require('../lib/utils') import { Model, InferAttributes, InferCreationAttributes, DataTypes, - CreationOptional, -} from "sequelize"; -import { sequelize } from "./index"; -import UserModel from "./user"; + CreationOptional +} from 'sequelize' +import { sequelize } from './index' +import UserModel from './user' +const security = require('../lib/insecurity') +const challenges = require('../data/datacache').challenges class FeedbackModel extends Model< - InferAttributes, - InferCreationAttributes +InferAttributes, +InferCreationAttributes > { - declare UserId: number | null; - declare id: CreationOptional; - declare comment: string; - declare rating: number; + declare UserId: number | null + declare id: CreationOptional + declare comment: string + declare rating: number } FeedbackModel.init( @@ -34,42 +34,42 @@ FeedbackModel.init( id: { type: DataTypes.INTEGER, primaryKey: true, - autoIncrement: true, + autoIncrement: true }, comment: { type: DataTypes.STRING, - set(comment: string) { - let sanitizedComment: string; + set (comment: string) { + let sanitizedComment: string if (!utils.disableOnContainerEnv()) { - sanitizedComment = security.sanitizeHtml(comment); + sanitizedComment = security.sanitizeHtml(comment) utils.solveIf(challenges.persistedXssFeedbackChallenge, () => { return utils.contains( sanitizedComment, '