@upv/ushi-shared
Version:
Shared DTOs, types, and utilities for the USHI platform (LMS, Trials, Social, Wallet).
68 lines (67 loc) • 2.39 kB
TypeScript
export declare const ApiRoutes: {
readonly auth: {
readonly login: "/auth/login";
readonly register: "/auth/register";
readonly refresh: "/auth/refresh";
readonly verifyEmail: "/auth/verify-email";
readonly sendVerificationEmail: "/auth/send-verification-email";
readonly forgotPassword: "/auth/forgot-password";
readonly resetPassword: "/auth/reset-password";
readonly logout: "/auth/logout";
};
readonly user: {
readonly get: "/user/profile";
readonly update: "/user/profile";
readonly preferences: "/user/preferences";
readonly deactivate: "/user/deactivate";
readonly regions: "/user/regions";
};
readonly lms: {
readonly progress: "/lms/progress";
readonly enroll: "/lms/enroll";
readonly track: "/lms/track";
readonly courseList: "/lms/courses";
readonly courseDetail: "/lms/courses/:id";
};
readonly social: {
readonly feed: "/social/feed";
readonly post: "/social/post";
readonly comment: "/social/comment";
readonly like: "/social/like";
readonly profile: "/social/profile/:userId";
};
readonly trial: {
readonly enroll: "/trial/enroll";
readonly consent: "/trial/consent";
readonly surveys: "/trial/surveys";
readonly participationStatus: "/trial/status";
};
readonly role: {
readonly assign: "/role/assign";
readonly revoke: "/role/revoke";
readonly list: "/role/list";
readonly current: "/role/current";
};
readonly admin: {
readonly users: "/admin/users";
readonly userDetail: "/admin/users/:userId";
readonly metrics: "/admin/metrics";
readonly systemStatus: "/admin/system-status";
};
readonly notifications: {
readonly list: "/notifications";
readonly read: "/notifications/read/:id";
readonly markAllRead: "/notifications/mark-all-read";
};
readonly system: {
readonly ping: "/system/ping";
readonly version: "/system/version";
readonly health: "/system/health";
};
};
/**
* Flatten nested route object to get a union of all route paths as strings.
*/
type Flatten<T> = T extends object ? T[keyof T] : never;
export type ApiRoute = Flatten<typeof ApiRoutes>;
export {};