Browse Source

API::json

pull/25/head
Alexey Velikiy 3 years ago
parent
commit
d505a20baf
  1. 19
      server/src/api.rs
  2. 17
      server/src/api/auth.rs

19
server/src/api.rs

@ -1,3 +1,6 @@
use hastic::services::user_service;
use warp::http::HeaderValue;
use warp::hyper::Body;
use warp::{Rejection, Reply, body};
use warp::{Filter, http::Response };
use warp::filters::method::post;
@ -5,12 +8,18 @@ use warp::filters::method::post;
mod auth;
use serde::{ Serialize };
pub struct API {
}
impl API {
fn new() -> API {
API{}
@ -24,6 +33,16 @@ impl API {
.body(s)
}
fn json<T: Serialize>(t: &T) -> Response<Body> {
let j = warp::reply::json(t);
let mut rs = j.into_response();
let hs = rs.headers_mut();
hs.insert("Access-Control-Allow-Origin", HeaderValue::from_static("*"));
hs.insert("Access-Control-Allow-Methods", HeaderValue::from_static("POST, GET, OPTIONS, DELETE"));
hs.insert("Access-Control-Allow-Headers", HeaderValue::from_static("*"));
rs
}
pub async fn serve() {
let lg = warp::any().map(move || API::builder("not found") );
let login = auth::get_route();

17
server/src/api/auth.rs

@ -1,32 +1,27 @@
use hastic::services::user_service;
use warp::http::HeaderValue;
use warp::hyper::Body;
use warp::{Rejection, Reply};
use warp::filters::method::post;
use warp::{Filter, http::Response };
use serde::{ Serialize };
use crate::api;
#[derive(Serialize)]
struct SigninResp {
token: user_service::AccessToken
}
pub fn get_route() -> impl Filter<Extract = impl Reply, Error = Rejection> + Clone {
return warp::path!("api" / "auth" / "signin")
.and(post())
.and(warp::body::json())
.map(|user: user_service::User| {
let token = "asdsad".to_string();
// user_service::
let j = warp::reply::json(&SigninResp{ token });
let mut rs = j.into_response();
let hs = rs.headers_mut();
hs.insert("Access-Control-Allow-Origin", HeaderValue::from_static("*"));
hs.insert("Access-Control-Allow-Methods", HeaderValue::from_static("POST, GET, OPTIONS, DELETE"));
hs.insert("Access-Control-Allow-Headers", HeaderValue::from_static("*"));
rs
// API::builder(j)
api::API::json(&SigninResp { token: "asdad".to_string() })
});
}
Loading…
Cancel
Save