juno 0.1.2

A helper rust library for the juno microservices framework
Documentation
use crate::{models::Value, utils::request_types};
use std::collections::HashMap;

pub enum BaseMessage {
	RegisterModuleRequest {
		request_id: String,
		module_id: String,
		version: String,
		dependencies: HashMap<String, String>,
	},
	RegisterModuleResponse {
		request_id: String,
	},
	FunctionCallRequest {
		request_id: String,
		function: String,
		arguments: HashMap<String, Value>,
	},
	FunctionCallResponse {
		request_id: String,
		data: Value,
	},
	RegisterHookRequest {
		request_id: String,
		hook: String,
	},
	RegisterHookResponse {
		request_id: String,
	},
	TriggerHookRequest {
		request_id: String,
		hook: String,
	},
	TriggerHookResponse {
		request_id: String,
	},
	DeclareFunctionRequest {
		request_id: String,
		function: String,
	},
	DeclareFunctionResponse {
		request_id: String,
		function: String,
	},
	Error {
		request_id: String,
		error: u32,
	},
	Unknown {
		request_id: String,
	},
}

impl BaseMessage {
	pub fn get_type(&self) -> u64 {
		match &self {
			BaseMessage::Unknown { .. } | BaseMessage::Error { .. } => request_types::ERROR,
			BaseMessage::RegisterModuleRequest { .. } => request_types::REGISTER_MODULE_REQUEST,
			BaseMessage::RegisterModuleResponse { .. } => request_types::REGISTER_MODULE_RESPONSE,
			BaseMessage::FunctionCallRequest { .. } => 3,
			BaseMessage::FunctionCallResponse { .. } => 4,
			BaseMessage::RegisterHookRequest { .. } => 5,
			BaseMessage::RegisterHookResponse { .. } => 6,
			BaseMessage::TriggerHookRequest { .. } => 7,
			BaseMessage::TriggerHookResponse { .. } => 8,
			BaseMessage::DeclareFunctionRequest { .. } => 9,
			BaseMessage::DeclareFunctionResponse { .. } => 10,
		}
	}

	pub fn get_request_id(&self) -> &String {
		match &self {
			BaseMessage::Unknown { request_id } => request_id,
			BaseMessage::Error { request_id, .. } => request_id,
			BaseMessage::RegisterModuleRequest { request_id, .. } => request_id,
			BaseMessage::RegisterModuleResponse { request_id, .. } => request_id,
			BaseMessage::FunctionCallRequest { request_id, .. } => request_id,
			BaseMessage::FunctionCallResponse { request_id, .. } => request_id,
			BaseMessage::RegisterHookRequest { request_id, .. } => request_id,
			BaseMessage::RegisterHookResponse { request_id, .. } => request_id,
			BaseMessage::TriggerHookRequest { request_id, .. } => request_id,
			BaseMessage::TriggerHookResponse { request_id, .. } => request_id,
			BaseMessage::DeclareFunctionRequest { request_id, .. } => request_id,
			BaseMessage::DeclareFunctionResponse { request_id, .. } => request_id,
		}
	}
}