44 lines
2.1 KiB
TypeScript
44 lines
2.1 KiB
TypeScript
import { ParsedMessage } from '../message_handler';
|
|
import { userDatabase } from '../../db_managers/db';
|
|
import { OperationHandler } from '../operations_base/operation_handler';
|
|
import { OperationPlugin } from '../operations_base/operation_plugin';
|
|
import { operationCodes} from "../operation_codes";
|
|
|
|
export class UserOperations implements OperationPlugin {
|
|
public static readonly operationCodes = {
|
|
GET_USERS: 'GET_USERS',
|
|
CREATE_USER: 'CREATE_USER',
|
|
MODIFY_USER: 'MODIFY_USER',
|
|
DELETE_USER: 'DELETE_USER',
|
|
FIND_BY_ID: 'FIND_BY_ID',
|
|
FIND_BY_EMAIL: 'FIND_BY_EMAIL',
|
|
};
|
|
|
|
public static async handleGetUsers(): Promise<ParsedMessage> {
|
|
const users = userDatabase.getAllUsers();
|
|
return { operationCode: operationCodes.OK, metaInfo: { users } };
|
|
}
|
|
|
|
public static async handleGetUserById(parsedMessage: ParsedMessage): Promise<ParsedMessage> {
|
|
const { id } = parsedMessage.metaInfo || {};
|
|
const user = userDatabase.findById(id);
|
|
return user
|
|
? { operationCode: operationCodes.OK, metaInfo: { user } }
|
|
: { operationCode: operationCodes.ERR, metaInfo: { message: 'User not found.' } };
|
|
}
|
|
|
|
public static async handleModifyUser(parsedMessage: ParsedMessage): Promise<ParsedMessage> {
|
|
const { id, name, email, password, departmentId, app_type } = parsedMessage.metaInfo || {};
|
|
const success = userDatabase.modifyUser(id, name, email, password, departmentId, app_type);
|
|
return success
|
|
? { operationCode: operationCodes.OK, metaInfo: { message: 'User modified successfully.' } }
|
|
: { operationCode: operationCodes.ERR, metaInfo: { message: 'Failed to modify user.' } };
|
|
}
|
|
|
|
public register(operationHandler: OperationHandler): void {
|
|
operationHandler.registerHandler(UserOperations.operationCodes.GET_USERS, UserOperations.handleGetUsers);
|
|
operationHandler.registerHandler(UserOperations.operationCodes.MODIFY_USER, UserOperations.handleModifyUser);
|
|
operationHandler.registerHandler(UserOperations.operationCodes.FIND_BY_ID, UserOperations.handleGetUserById);
|
|
}
|
|
}
|