Skip to content

Commit

Permalink
TS for db model
Browse files Browse the repository at this point in the history
  • Loading branch information
Veikkosuhonen committed Jan 22, 2024
1 parent 4c6bc92 commit 1ec58d4
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 36 deletions.
12 changes: 6 additions & 6 deletions src/db/connection.js → src/db/connection.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
const Sequelize = require('sequelize')
const { Umzug, SequelizeStorage } = require('umzug')
const { DATABASE_URL } = require('../util/config')
import { Sequelize } from 'sequelize'
import { Umzug, SequelizeStorage } from 'umzug'
import { DATABASE_URL } from '../util/config'
import logger from '../util/logger'

const DB_CONNECTION_RETRY_LIMIT = 10

const sequelize = new Sequelize(DATABASE_URL, { logging: false })
export const sequelize = new Sequelize(DATABASE_URL, { logging: false })

const runMigrations = async () => {
const migrator = new Umzug({
Expand All @@ -27,9 +27,9 @@ const testConnection = async () => {
await runMigrations()
}

const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms))
const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms))

const connectToDatabase = async (attempt = 0) => {
export const connectToDatabase = async (attempt = 0) => {
try {
await testConnection()
} catch (err) {
Expand Down
5 changes: 0 additions & 5 deletions src/db/models/index.js

This file was deleted.

24 changes: 0 additions & 24 deletions src/db/models/user.js

This file was deleted.

25 changes: 25 additions & 0 deletions src/db/models/user.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { STRING, ARRAY, InferAttributes, Model } from 'sequelize'
import { sequelize } from '../connection';

class User extends Model<InferAttributes<User>> {
declare id: string;
declare iamGroups: string[];
}

User.init(
{
id: {
type: STRING,
primaryKey: true,
},
iamGroups: {
type: ARRAY(STRING),
allowNull: false,
defaultValue: [],
},
},
{ sequelize, modelName: 'user', underscored: true },
)

module.exports = User
export default User
2 changes: 1 addition & 1 deletion src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const { getIAMRights } = require('./auth/IAMRights')
const { data } = require('./auth/data')

const { connectToDatabase } = require('./db/connection')
const { User } = require('./db/models')
const User = require('./db/models/user')
const testRouter = require('./util/testRouter')

initializeSentry()
Expand Down

0 comments on commit 1ec58d4

Please sign in to comment.