2024-07-31 01:50:46 +00:00
|
|
|
import { inject, injectable } from 'tsyringe';
|
|
|
|
|
import { LuciaProvider } from '../providers/lucia.provider';
|
2024-07-29 01:39:42 +00:00
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------------- */
|
|
|
|
|
/* Service */
|
|
|
|
|
/* -------------------------------------------------------------------------- */
|
|
|
|
|
/* -------------------------------------------------------------------------- */
|
|
|
|
|
/* ---------------------------------- About --------------------------------- */
|
|
|
|
|
/*
|
|
|
|
|
Services are responsible for handling business logic and data manipulation.
|
|
|
|
|
They genreally call on repositories or other services to complete a use-case.
|
|
|
|
|
*/
|
|
|
|
|
/* ---------------------------------- Notes --------------------------------- */
|
|
|
|
|
/*
|
|
|
|
|
Services should be kept as clean and simple as possible.
|
|
|
|
|
|
|
|
|
|
Create private functions to handle complex logic and keep the public methods as
|
|
|
|
|
simple as possible. This makes the service easier to read, test and understand.
|
|
|
|
|
*/
|
|
|
|
|
/* -------------------------------------------------------------------------- */
|
2024-07-31 01:50:46 +00:00
|
|
|
@injectable()
|
2024-07-29 01:39:42 +00:00
|
|
|
export class IamService {
|
2024-07-31 01:50:46 +00:00
|
|
|
constructor(
|
|
|
|
|
@inject(LuciaProvider) private readonly lucia: LuciaProvider,
|
|
|
|
|
) { }
|
|
|
|
|
|
2024-07-29 01:39:42 +00:00
|
|
|
async logout(sessionId: string) {
|
2024-07-31 01:50:46 +00:00
|
|
|
return this.lucia.invalidateSession(sessionId);
|
2024-07-29 01:39:42 +00:00
|
|
|
}
|
|
|
|
|
}
|