import { Microservice } from "@autoplex/microservice"; import * as services from "./services"; import { User, RegisterToken } from "@autoplex/database"; /** * The main application class */ export default class Application extends Microservice { /** * The application key used for signing stuff */ public readonly APP_KEY: string; /** * Get the singleton application instance */ public static instance() { return super.instance(); } /** * Create a new application instance */ public constructor(appKey: string) { super(); this.APP_KEY = appKey; this.installServices(Object.values(services)); } /** * Initialize the application if necessary */ protected async onStart() { let numUsers = await User.count(); if (numUsers == 0) { console.log("Found 0 users"); let token = await RegisterToken.findOne(); if (token === undefined) { token = await RegisterToken.generate(); } console.log("First time register with: ", token.token); } } }