diff --git a/config/default.json b/config/default.json index 5680920..62b451a 100644 --- a/config/default.json +++ b/config/default.json @@ -12,6 +12,7 @@ "wildDuck": { "url": "http://localhost", "token": "aaaaa", - "domain": "test-codemowers.eu" + "domain": "test-codemowers.eu", + "preferredDomain": "k-space.ee" } } \ No newline at end of file diff --git a/index.ts b/index.ts index a203c16..1a1c7eb 100644 --- a/index.ts +++ b/index.ts @@ -3,11 +3,31 @@ import { logger } from "./logger"; const port = app.get("port"); const host = app.get("host"); - -process.on("unhandledRejection", (reason) => - logger.error("Unhandled Rejection %O", reason), -); +const server = app.listen(port); app.listen(port).then(() => { - logger.info(`Feathers app listening on http://${host}:${port}`); + logger.info(`Walias app listening on http://${host}:${port}`); +}); + +process.on("SIGINT", () => { + logger.info("Received SIGINT signal. Shutting down gracefully."); + + server.close(() => { + logger.info("HTTP server closed."); + process.exit(0); + }); +}); + +process.on("SIGTERM", () => { + logger.info("Received SIGTERM signal. Shutting down gracefully."); + + server.close(() => { + logger.info("HTTP server closed."); + process.exit(0); + }); +}); + +process.on("unhandledRejection", (reason) => { + logger.error("Unhandled rejection", reason); + process.exit(1); }); diff --git a/src/services/aliases/aliases.class.ts b/src/services/aliases/aliases.class.ts index 0f91d6c..928ec99 100644 --- a/src/services/aliases/aliases.class.ts +++ b/src/services/aliases/aliases.class.ts @@ -47,7 +47,7 @@ export interface AliasesParams extends Params { export class AliasesService implements ServiceInterface { - constructor(public options: AliasesServiceOptions) { } + constructor(public options: AliasesServiceOptions) {} async find(params: ServiceParams): Promise { const userId = await this.getUserIdByEmailAddress(params); @@ -93,7 +93,9 @@ export class AliasesService const emails = params.session?.user?.emails; const addressInfoResponse = await Promise.any( - emails.map((email: string) => + emails + .filter((email: string) => email.endsWith(config.get("wildDuck.preferredDomain"))) + .map((email: string) => wildDuckClient.get(`addresses/resolve/${email}`), ), );