Wire in delete and modify to front end (unimplemented)

This commit is contained in:
William Brown 2019-02-05 12:38:04 +10:00
parent c090021fdf
commit f22562a0ba
4 changed files with 62 additions and 3 deletions

View file

@ -11,10 +11,10 @@ use futures::{future, Future, Stream};
use super::config::Configuration; use super::config::Configuration;
// SearchResult // SearchResult
use super::event::{CreateEvent, SearchEvent, AuthEvent}; use super::event::{DeleteEvent, ModifyEvent, CreateEvent, SearchEvent, AuthEvent};
use super::filter::Filter; use super::filter::Filter;
use super::log; use super::log;
use super::proto_v1::{CreateRequest, SearchRequest, AuthRequest, AuthResponse}; use super::proto_v1::{DeleteRequest, ModifyRequest, CreateRequest, SearchRequest, AuthRequest, AuthResponse};
use super::server; use super::server;
struct AppState { struct AppState {
@ -91,6 +91,18 @@ fn create(
json_event_decode!(req, state, CreateEvent, Response, CreateRequest) json_event_decode!(req, state, CreateEvent, Response, CreateRequest)
} }
fn modify(
(req, state): (HttpRequest<AppState>, State<AppState>),
) -> impl Future<Item = HttpResponse, Error = Error> {
json_event_decode!(req, state, ModifyEvent, Response, ModifyRequest)
}
fn delete(
(req, state): (HttpRequest<AppState>, State<AppState>),
) -> impl Future<Item = HttpResponse, Error = Error> {
json_event_decode!(req, state, DeleteEvent, Response, DeleteRequest)
}
fn search( fn search(
(req, state): (HttpRequest<AppState>, State<AppState>), (req, state): (HttpRequest<AppState>, State<AppState>),
) -> impl Future<Item = HttpResponse, Error = Error> { ) -> impl Future<Item = HttpResponse, Error = Error> {
@ -241,6 +253,13 @@ pub fn create_server_core(config: Configuration) {
.resource("/v1/create", |r| { .resource("/v1/create", |r| {
r.method(http::Method::POST).with_async(create) r.method(http::Method::POST).with_async(create)
}) })
// Should these actually be different method types?
.resource("/v1/modify", |r| {
r.method(http::Method::POST).with_async(modify)
})
.resource("/v1/delete", |r| {
r.method(http::Method::POST).with_async(delete)
})
// curl --header "Content-Type: application/json" --request POST --data '{ "filter" : { "Eq": ["class", "user"] }}' http://127.0.0.1:8080/v1/search // curl --header "Content-Type: application/json" --request POST --data '{ "filter" : { "Eq": ["class", "user"] }}' http://127.0.0.1:8080/v1/search
.resource("/v1/search", |r| { .resource("/v1/search", |r| {
r.method(http::Method::POST).with_async(search) r.method(http::Method::POST).with_async(search)

View file

@ -1,6 +1,6 @@
use super::filter::Filter; use super::filter::Filter;
use super::proto_v1::Entry as ProtoEntry; use super::proto_v1::Entry as ProtoEntry;
use super::proto_v1::{CreateRequest, Response, SearchRequest, SearchResponse, AuthRequest, AuthResponse, AuthStatus}; use super::proto_v1::{CreateRequest, Response, SearchRequest, SearchResponse, AuthRequest, AuthResponse, AuthStatus, DeleteRequest, ModifyRequest};
use actix::prelude::*; use actix::prelude::*;
use entry::{Entry, EntryCommitted, EntryInvalid, EntryNew, EntryValid}; use entry::{Entry, EntryCommitted, EntryInvalid, EntryNew, EntryValid};
use error::OperationError; use error::OperationError;
@ -157,6 +157,10 @@ impl Message for DeleteEvent {
} }
impl DeleteEvent { impl DeleteEvent {
pub fn from_request(request: DeleteRequest) -> Self {
unimplemented!()
}
pub fn new_internal(filter: Filter) -> Self { pub fn new_internal(filter: Filter) -> Self {
DeleteEvent { DeleteEvent {
filter: filter, filter: filter,
@ -177,6 +181,10 @@ impl Message for ModifyEvent {
} }
impl ModifyEvent { impl ModifyEvent {
pub fn from_request(request: ModifyRequest) -> Self {
unimplemented!()
}
pub fn new_internal(filter: Filter, modlist: ModifyList) -> Self { pub fn new_internal(filter: Filter, modlist: ModifyList) -> Self {
ModifyEvent { ModifyEvent {
filter: filter, filter: filter,

View file

@ -63,6 +63,22 @@ impl CreateRequest {
} }
} }
#[derive(Debug, Serialize, Deserialize)]
pub struct DeleteRequest {
pub filter: Filter,
}
impl DeleteRequest {
pub fn new(filter: Filter) -> Self {
DeleteRequest { filter: filter }
}
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ModifyRequest {
// Probably needs a modlist?
}
// Login is a multi-step process potentially. First the client says who they // Login is a multi-step process potentially. First the client says who they
// want to request // want to request
// //

View file

@ -696,6 +696,22 @@ impl Handler<CreateEvent> for QueryServer {
} }
} }
impl Handler<ModifyEvent> for QueryServer {
type Result = Result<OpResult, OperationError>;
fn handle(&mut self, msg: ModifyEvent, _: &mut Self::Context) -> Self::Result {
unimplemented!()
}
}
impl Handler<DeleteEvent> for QueryServer {
type Result = Result<OpResult, OperationError>;
fn handle(&mut self, msg: DeleteEvent, _: &mut Self::Context) -> Self::Result {
unimplemented!()
}
}
impl Handler<AuthEvent> for QueryServer { impl Handler<AuthEvent> for QueryServer {
type Result = Result<AuthResult, OperationError>; type Result = Result<AuthResult, OperationError>;