pub use graphql::GraphQLMultipart;
pub use graphql::GraphQLRequest;
use reqwest::Method;
pub use rest::{RestMultipart, RestRequest};
use serde::Serialize;
use crate::errors::PrimaBridgeResult;
use crate::request::GraphQLBody;
use crate::BridgeClient;
use crate::BridgeImpl;
use super::DeliverableRequest;
mod graphql;
mod rest;
pub struct Request;
impl Request {
pub fn graphql<S: Serialize, Client: BridgeClient>(
bridge: &BridgeImpl<Client>,
graphql_body: impl Into<GraphQLBody<S>>,
) -> PrimaBridgeResult<GraphQLRequest<Client>> {
GraphQLRequest::new(bridge, graphql_body)
}
pub fn rest<Client: BridgeClient>(bridge: &BridgeImpl<Client>) -> RestRequest<Client> {
Self::get(bridge)
}
pub fn get<Client: BridgeClient>(bridge: &BridgeImpl<Client>) -> RestRequest<Client> {
RestRequest::new(bridge)
}
pub fn post<Client: BridgeClient>(bridge: &BridgeImpl<Client>) -> RestRequest<Client> {
RestRequest::new(bridge).method(Method::POST)
}
pub fn patch<Client: BridgeClient>(bridge: &BridgeImpl<Client>) -> RestRequest<Client> {
RestRequest::new(bridge).method(Method::PATCH)
}
pub fn delete<Client: BridgeClient>(bridge: &BridgeImpl<Client>) -> RestRequest<Client> {
RestRequest::new(bridge).method(Method::DELETE)
}
pub fn put<Client: BridgeClient>(bridge: &BridgeImpl<Client>) -> RestRequest<Client> {
RestRequest::new(bridge).method(Method::PUT)
}
}