Use entity-schemas as entities

This commit is contained in:
Jerko Steiner 2019-09-18 15:54:56 +07:00
parent 2ad72d2925
commit 960fc96d28
24 changed files with 15 additions and 156 deletions

View File

@ -19,7 +19,7 @@ app:
migrationsRun: false migrationsRun: false
logging: true logging: true
entities: entities:
- src/entity-schemas/*Entity.ts - src/entities/*Entity.ts
migrations: migrations:
- src/migrations/index.ts - src/migrations/index.ts
cli: cli:

View File

@ -1,7 +1,7 @@
import { ServerBootstrap } from './application' import { ServerBootstrap } from './application'
import { configureServer } from './application/configureServer' import { configureServer } from './application/configureServer'
import { config } from './config' import { config } from './config'
import * as entities from './entity-schemas' import * as entities from './entities'
import * as migrations from './migrations' import * as migrations from './migrations'
export default new ServerBootstrap({ export default new ServerBootstrap({

View File

@ -1,17 +0,0 @@
// import { CreateDateColumn, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'
// const transformer = {
// from: (value: Date) => !isNaN(value.getTime()) ? value.toISOString() : value,
// to: (value: undefined | null | string) => value ? new Date(value) : value,
// }
// export abstract class BaseEntity {
// @PrimaryGeneratedColumn({type: 'bigint'})
// id!: number
// @CreateDateColumn({transformer, type: 'datetime'})
// createDate!: string
// @UpdateDateColumn({transformer, type: 'datetime'})
// updateDate!: string
// }

View File

@ -1,8 +0,0 @@
// import { Column, Entity } from 'typeorm'
// import { BaseEntity } from './BaseEntity'
// @Entity()
// export class Role extends BaseEntity {
// @Column({ unique: true })
// name!: string
// }

View File

@ -1,22 +0,0 @@
// import { Column, Entity, Index, ManyToOne, PrimaryColumn } from 'typeorm'
// import { DefaultSession } from '../session/DefaultSession'
// import { User } from './User'
// @Entity()
// export class Session implements DefaultSession {
// @PrimaryColumn()
// id!: string
// @Index()
// @Column({type: 'bigint'})
// expiredAt: number = Date.now()
// @ManyToOne(type => User, user => user.sessions)
// user?: User
// @Column({ nullable: true })
// userId!: number
// @Column('text')
// json = ''
// }

View File

@ -1,20 +0,0 @@
// import { Column, Entity, Index, ManyToOne, OneToMany } from 'typeorm'
// import { BaseEntity } from './BaseEntity'
// import { User } from './User'
// import { UserTeam } from './UserTeam'
// @Entity()
// export class Team extends BaseEntity {
// @Column()
// name!: string
// @Column()
// @Index()
// userId!: number
// @ManyToOne(type => User)
// user?: User
// @OneToMany(type => UserTeam, userTeam => userTeam.team)
// userTeams!: UserTeam[]
// }

View File

@ -1,27 +0,0 @@
// import { Column, Entity, OneToMany } from 'typeorm'
// import { BaseEntity } from './BaseEntity'
// import { Session } from './Session'
// import { UserEmail } from './UserEmail'
// import { UserTeam } from './UserTeam'
// @Entity()
// export class User extends BaseEntity {
// @Column()
// firstName!: string
// @Column()
// lastName!: string
// @OneToMany(type => UserEmail, email => email.user)
// emails!: UserEmail[]
// // bcrypt encoded password
// @Column({nullable: true, length: '60', select: false})
// password?: string
// @OneToMany(type => Session, session => session.user)
// sessions!: Session[]
// @OneToMany(type => UserTeam, userTeam => userTeam.user)
// userTeams!: UserTeam[]
// }

View File

@ -1,15 +0,0 @@
// import { Column, Entity, ManyToOne } from 'typeorm'
// import { BaseEntity } from './BaseEntity'
// import { User } from './User'
// @Entity()
// export class UserEmail extends BaseEntity {
// @Column({unique: true})
// email!: string
// @ManyToOne(type => User, user => user.emails)
// user?: User
// @Column()
// userId?: number = undefined
// }

View File

@ -1,26 +0,0 @@
// import { Column, Entity, ManyToOne } from 'typeorm'
// import { BaseEntity } from './BaseEntity'
// import { Role } from './Role'
// import { Team } from './Team'
// import { User } from './User'
// @Entity()
// export class UserTeam extends BaseEntity {
// @ManyToOne(type => User, user => user.userTeams)
// user!: User
// @Column()
// userId!: number
// @ManyToOne(type => Team, team => team.userTeams)
// team?: Team
// @Column()
// teamId!: number
// @ManyToOne(type => Role)
// role?: Role
// @Column()
// roleId!: number
// }

View File

@ -1,7 +1,6 @@
// export * from './BaseEntity' export * from './RoleEntity'
// export * from './Role' export * from './SessionEntity'
// export * from './Session' export * from './TeamEntity'
// export * from './Team' export * from './UserEmailEntity'
// export * from './User' export * from './UserEntity'
// export * from './UserEmail' export * from './UserTeamEntity'
// export * from './UserTeam'

View File

@ -1,6 +0,0 @@
export * from './RoleEntity'
export * from './SessionEntity'
export * from './TeamEntity'
export * from './UserEmailEntity'
export * from './UserEntity'
export * from './UserTeamEntity'

View File

@ -5,7 +5,8 @@ if (require.main === module) {
} }
export * from './application' export * from './application'
export * from './cli' export * from './cli'
export * from './entity-schemas' export * from './entities'
export * from './entities/BaseEntitySchemaPart'
export * from './error' export * from './error'
export * from './logger' export * from './logger'
export * from './middleware' export * from './middleware'

View File

@ -2,7 +2,7 @@ import { Session } from '@rondo.dev/common'
import { TypeORMTransactionManager } from '@rondo.dev/db-typeorm' import { TypeORMTransactionManager } from '@rondo.dev/db-typeorm'
import ExpressSession from 'express-session' import ExpressSession from 'express-session'
import { UrlWithStringQuery } from 'url' import { UrlWithStringQuery } from 'url'
import { SessionEntity } from '../entity-schemas' import { SessionEntity } from '../entities'
import { apiLogger } from '../logger' import { apiLogger } from '../logger'
import { DefaultSession } from '../session' import { DefaultSession } from '../session'
import { SessionStore } from '../session/SessionStore' import { SessionStore } from '../session/SessionStore'

View File

@ -3,7 +3,7 @@ import { UserInTeam } from '@rondo.dev/common/lib/team/UserInTeam'
import Validator from '@rondo.dev/validator' import Validator from '@rondo.dev/validator'
import { ensureLoggedIn, Context, RPC } from './RPC' import { ensureLoggedIn, Context, RPC } from './RPC'
import { TypeORMDatabase } from '@rondo.dev/db-typeorm' import { TypeORMDatabase } from '@rondo.dev/db-typeorm'
import { TeamEntity, UserTeamEntity } from '../entity-schemas' import { TeamEntity, UserTeamEntity } from '../entities'
@ensureLoggedIn @ensureLoggedIn
export class SQLTeamService implements RPC<TeamService> { export class SQLTeamService implements RPC<TeamService> {

View File

@ -2,7 +2,7 @@ import { UserService } from '@rondo.dev/common'
import { TypeORMDatabase } from '@rondo.dev/db-typeorm' import { TypeORMDatabase } from '@rondo.dev/db-typeorm'
import { hash } from 'bcrypt' import { hash } from 'bcrypt'
import { Context, ensureLoggedIn, RPC } from './RPC' import { Context, ensureLoggedIn, RPC } from './RPC'
import { UserEntity, UserEmailEntity } from '../entity-schemas' import { UserEntity, UserEmailEntity } from '../entities'
const SALT_ROUNDS = 10 const SALT_ROUNDS = 10
// const MIN_PASSWORD_LENGTH = 10 // const MIN_PASSWORD_LENGTH = 10

View File

@ -4,7 +4,7 @@ import Validator from '@rondo.dev/validator'
import { compare, hash } from 'bcrypt' import { compare, hash } from 'bcrypt'
import { validate as validateEmail } from 'email-validator' import { validate as validateEmail } from 'email-validator'
import createError from 'http-errors' import createError from 'http-errors'
import { UserEntity, UserEmailEntity } from '../entity-schemas' import { UserEntity, UserEmailEntity } from '../entities'
const SALT_ROUNDS = 10 const SALT_ROUNDS = 10
const MIN_PASSWORD_LENGTH = 10 const MIN_PASSWORD_LENGTH = 10

View File

@ -1,7 +1,7 @@
import { UserPermissions } from '@rondo.dev/common' import { UserPermissions } from '@rondo.dev/common'
import createError from 'http-errors' import createError from 'http-errors'
import { TypeORMDatabase } from '@rondo.dev/db-typeorm' import { TypeORMDatabase } from '@rondo.dev/db-typeorm'
import { UserTeamEntity } from '../entity-schemas' import { UserTeamEntity } from '../entities'
export class SQLUserPermissions implements UserPermissions { export class SQLUserPermissions implements UserPermissions {
constructor(protected readonly db: TypeORMDatabase) {} constructor(protected readonly db: TypeORMDatabase) {}