feat(data) seed default admin
continuous-integration/drone/tag Build is passing
Details
continuous-integration/drone/tag Build is passing
Details
parent
1641c81a53
commit
1ac5aca57d
|
@ -6,11 +6,11 @@ JWT_REFRESH_EXPIRES="7d"
|
|||
ENC_KEY="921c83f3b90c92dca4ba9b947f99b4c9"
|
||||
IV="a671a96159e97a4f"
|
||||
|
||||
DEFAULT_DB_HOST="localhost"
|
||||
DEFAULT_DB_PORT="5432"
|
||||
DEFAULT_DB_USER="postgres"
|
||||
DEFAULT_DB_PASS="secret"
|
||||
DEFAULT_DB_NAME="skyworld_pos"
|
||||
DEFAULT_DB_HOST="172.10.10.2"
|
||||
DEFAULT_DB_PORT="5411"
|
||||
DEFAULT_DB_USER="root"
|
||||
DEFAULT_DB_PASS="password"
|
||||
DEFAULT_DB_NAME="pos"
|
||||
|
||||
ELASTIC_APM_ACTIVATE=true
|
||||
ELASTIC_APM_SERVICE_NAME="Skyworld POS"
|
||||
|
|
|
@ -19,7 +19,9 @@
|
|||
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
|
||||
"test:e2e": "jest --config ./test/jest-e2e.json",
|
||||
"orm": "ts-node --project ./tsconfig.json -r tsconfig-paths/register ./node_modules/typeorm/cli.js -d ./src/database/ormconfig.ts",
|
||||
"migration:execute": "yarn run orm migration:run"
|
||||
"migration:execute": "yarn run orm migration:run",
|
||||
"seed:config": "ts-node -r tsconfig-paths/register ./node_modules/typeorm-seeding/dist/cli.js -n ./src/database/seed-ormconfig.ts config",
|
||||
"seed:run": "ts-node -r tsconfig-paths/register ./node_modules/typeorm-seeding/dist/cli.js -n ./src/database/seed-ormconfig.ts seed"
|
||||
},
|
||||
"dependencies": {
|
||||
"@nestjs/common": "^10.0.0",
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
export const SALT_OR_ROUNDS = +process.env.SALT_OR_ROUNDS ?? 10;
|
||||
export enum STATUS {
|
||||
ACTIVE = 'active',
|
||||
CANCEL = 'cancel',
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
import { UserRole } from 'src/modules/user-related/user/constants';
|
||||
|
||||
export const default_admin = {
|
||||
id: 'c59f811e-873c-4472-bd58-21c111902114',
|
||||
name: 'superadmin',
|
||||
username: 'superadmin',
|
||||
password: 'Eigen123!',
|
||||
role: UserRole.SUPERADMIN,
|
||||
};
|
|
@ -1,9 +1,15 @@
|
|||
import { MigrationInterface, QueryRunner } from 'typeorm';
|
||||
|
||||
export class User1717401535006 implements MigrationInterface {
|
||||
name = 'User1717401535006';
|
||||
export class User1717470361050 implements MigrationInterface {
|
||||
name = 'User1717470361050';
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`CREATE TYPE "public"."users_status_enum" AS ENUM('active', 'cancel', 'confirmed', 'draft', 'expired', 'inactive', 'pending', 'refunded', 'rejected', 'settled', 'waiting')`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`CREATE TYPE "public"."users_role_enum" AS ENUM('superadmin', 'staff', 'tenant')`,
|
||||
);
|
||||
await queryRunner.query(
|
||||
`CREATE TABLE "users" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "creator_id" character varying(36), "creator_name" character varying(125), "editor_id" character varying(36), "editor_name" character varying(125), "created_at" bigint NOT NULL, "updated_at" bigint NOT NULL, "status" "public"."users_status_enum" NOT NULL DEFAULT 'draft', "refresh_token" character varying, "name" character varying, "username" character varying, "password" character varying, "email" character varying, "role" "public"."users_role_enum" NOT NULL DEFAULT 'staff', "user_privilege_id" uuid, CONSTRAINT "PK_a3ffb1c0c8416b9fc6f907b7433" PRIMARY KEY ("id"))`,
|
||||
);
|
||||
|
@ -17,5 +23,7 @@ export class User1717401535006 implements MigrationInterface {
|
|||
`ALTER TABLE "users" DROP CONSTRAINT "FK_a575428fc6718f1394eff0d8443"`,
|
||||
);
|
||||
await queryRunner.query(`DROP TABLE "users"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."users_role_enum"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."users_status_enum"`);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
module.exports = {
|
||||
type: 'postgres',
|
||||
host: process.env.DEFAULT_DB_HOST,
|
||||
port: process.env.DEFAULT_DB_PORT,
|
||||
username: process.env.DEFAULT_DB_USER,
|
||||
password: process.env.DEFAULT_DB_PASS,
|
||||
database: process.env.DEFAULT_DB_NAME,
|
||||
logging: false,
|
||||
synchronize: false,
|
||||
entities: ['src/modules/**/**/data/models/*.ts'],
|
||||
seeds: ['src/database/seeds/**/*{seed.ts,seed.js}'],
|
||||
factories: ['src/database/factories/**/*{.ts,.js}'],
|
||||
};
|
|
@ -0,0 +1,30 @@
|
|||
import { hashPassword } from 'src/core/helpers/password/bcrypt.helpers';
|
||||
import { SALT_OR_ROUNDS } from 'src/core/strings/constants/base.constants';
|
||||
import { default_admin } from 'src/core/strings/constants/default-data.constants';
|
||||
import { UserModel } from 'src/modules/user-related/user/data/models/user.model';
|
||||
import { Connection } from 'typeorm';
|
||||
import { Factory, Seeder } from 'typeorm-seeding';
|
||||
|
||||
export class SeedDefaultAdmin implements Seeder {
|
||||
public async run(factory: Factory, connection: Connection): Promise<void> {
|
||||
try {
|
||||
const data = new UserModel();
|
||||
Object.assign(data, {
|
||||
...default_admin,
|
||||
password: await hashPassword(default_admin.password, SALT_OR_ROUNDS),
|
||||
created_at: new Date().getTime(),
|
||||
updated_at: new Date().getTime(),
|
||||
});
|
||||
|
||||
console.log(data, 'dsa');
|
||||
await connection
|
||||
.createQueryBuilder()
|
||||
.insert()
|
||||
.into(UserModel)
|
||||
.values([data])
|
||||
.execute();
|
||||
} catch (error) {
|
||||
console.log(error, 'sdada');
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue