2024-10-10 02:32:36 +00:00
|
|
|
import 'reflect-metadata';
|
|
|
|
|
import createApp from '$lib/server/api/common/create-app';
|
|
|
|
|
import { CollectionController } from '$lib/server/api/controllers/collection.controller';
|
|
|
|
|
import { MfaController } from '$lib/server/api/controllers/mfa.controller';
|
|
|
|
|
import { OAuthController } from '$lib/server/api/controllers/oauth.controller';
|
|
|
|
|
import { SignupController } from '$lib/server/api/controllers/signup.controller';
|
|
|
|
|
import { UserController } from '$lib/server/api/controllers/user.controller';
|
|
|
|
|
import { WishlistController } from '$lib/server/api/controllers/wishlist.controller';
|
|
|
|
|
import { AuthCleanupJobs } from '$lib/server/api/jobs/auth-cleanup.job';
|
|
|
|
|
import { hc } from 'hono/client';
|
|
|
|
|
import { container } from 'tsyringe';
|
|
|
|
|
import { config } from './common/config';
|
|
|
|
|
import { IamController } from './controllers/iam.controller';
|
|
|
|
|
import { LoginController } from './controllers/login.controller';
|
|
|
|
|
|
|
|
|
|
export const app = createApp();
|
|
|
|
|
|
|
|
|
|
// configureOpenAPI(app);
|
2024-07-21 19:05:48 +00:00
|
|
|
|
2024-09-01 19:22:00 +00:00
|
|
|
/* -------------------------------------------------------------------------- */
|
|
|
|
|
/* Routes */
|
|
|
|
|
/* -------------------------------------------------------------------------- */
|
2024-07-21 19:05:48 +00:00
|
|
|
const routes = app
|
2024-09-01 19:22:00 +00:00
|
|
|
.route('/me', container.resolve(IamController).routes())
|
|
|
|
|
.route('/user', container.resolve(UserController).routes())
|
|
|
|
|
.route('/login', container.resolve(LoginController).routes())
|
2024-09-16 16:07:22 +00:00
|
|
|
.route('/oauth', container.resolve(OAuthController).routes())
|
2024-09-01 19:22:00 +00:00
|
|
|
.route('/signup', container.resolve(SignupController).routes())
|
2024-09-07 00:35:16 +00:00
|
|
|
.route('/wishlists', container.resolve(WishlistController).routes())
|
2024-09-01 19:22:00 +00:00
|
|
|
.route('/collections', container.resolve(CollectionController).routes())
|
|
|
|
|
.route('/mfa', container.resolve(MfaController).routes())
|
2024-10-10 02:32:36 +00:00
|
|
|
.get('/', (c) => c.json({ message: 'Server is healthy' }));
|
2024-07-21 19:05:48 +00:00
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------- */
|
2024-09-01 19:22:00 +00:00
|
|
|
/* Cron Jobs */
|
2024-07-21 19:05:48 +00:00
|
|
|
/* -------------------------------------------------------------------------- */
|
2024-10-10 02:32:36 +00:00
|
|
|
container.resolve(AuthCleanupJobs).deleteStaleEmailVerificationRequests();
|
|
|
|
|
container.resolve(AuthCleanupJobs).deleteStaleLoginRequests();
|
2024-07-25 00:39:03 +00:00
|
|
|
|
2024-09-01 19:22:00 +00:00
|
|
|
/* -------------------------------------------------------------------------- */
|
|
|
|
|
/* Exports */
|
|
|
|
|
/* -------------------------------------------------------------------------- */
|
2024-10-10 02:32:36 +00:00
|
|
|
export const rpc = hc<typeof routes>(config.api.origin);
|
|
|
|
|
export type ApiClient = typeof rpc;
|
|
|
|
|
export type ApiRoutes = typeof routes;
|