mirror of https://github.com/boxyhq/jackson.git
27 lines
731 B
TypeScript
27 lines
731 B
TypeScript
import type {
|
|
DirectorySyncResponse,
|
|
IDirectoryGroups,
|
|
IDirectoryUsers,
|
|
EventCallback,
|
|
DirectorySyncRequest,
|
|
} from '../typings';
|
|
|
|
export class RequestHandler {
|
|
constructor(
|
|
private directoryUsers: IDirectoryUsers,
|
|
private directoryGroups: IDirectoryGroups
|
|
) {}
|
|
|
|
async handle(request: DirectorySyncRequest, callback?: EventCallback): Promise<DirectorySyncResponse> {
|
|
const resourceType = request.resourceType.toLowerCase();
|
|
|
|
if (resourceType === 'users') {
|
|
return await this.directoryUsers.handleRequest(request, callback);
|
|
} else if (resourceType === 'groups') {
|
|
return await this.directoryGroups.handleRequest(request, callback);
|
|
}
|
|
|
|
return { status: 404, data: {} };
|
|
}
|
|
}
|