eventsourcingdb 2.0.4

A client library for the EventsourcingDB by the native web.
Documentation
use super::{ClientRequest, OneShotRequest};
use crate::{
    client::Precondition,
    error::ClientError,
    event::{Event, EventCandidate},
};
use reqwest::Method;
use serde::Serialize;

#[derive(Debug, Serialize)]
pub struct WriteEventsRequest {
    pub events: Vec<EventCandidate>,
    pub preconditions: Vec<Precondition>,
}

impl ClientRequest for WriteEventsRequest {
    const URL_PATH: &'static str = "/api/v1/write-events";
    const METHOD: Method = Method::POST;

    fn body(&self) -> Option<Result<impl Serialize, ClientError>> {
        Some(Ok(self))
    }
}
impl OneShotRequest for WriteEventsRequest {
    type Response = Vec<Event>;
}