amqp_api_client/
api_consumer.rs1use crate::amqp_input_api_consumer::AmqpInputApiConsumer;
2use crate::amqp_output_api_consumer::AmqpOutputApiConsumer;
3use crate::error::{Error, ErrorKind};
4use cooplan_config_reader::reader::try_read;
5use serde::{Deserialize, Serialize};
6
7#[derive(Deserialize, Serialize)]
8pub struct ApiConsumer {
9 input: Vec<AmqpInputApiConsumer>,
10 output: Vec<AmqpOutputApiConsumer>,
11}
12
13impl ApiConsumer {
14 pub fn input(&self) -> &[AmqpInputApiConsumer] {
15 &self.input
16 }
17
18 pub fn output(&self) -> &[AmqpOutputApiConsumer] {
19 &self.output
20 }
21}
22
23pub async fn try_get(api_consumer_file: &str) -> Result<ApiConsumer, Error> {
24 match try_read(api_consumer_file).await {
25 Ok(api) => Ok(api),
26 Err(error) => Err(Error::new(
27 ErrorKind::InternalFailure,
28 format!("failed to read api configuration: {}", error),
29 )),
30 }
31}