mirror of https://github.com/knative/docs.git
Updated to sdk-rust 0.2 (#2730)
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
This commit is contained in:
parent
35eb9e28d2
commit
0bdea0de88
|
@ -291,9 +291,9 @@ checksum = "b585a98a234c46fc563103e9278c9391fde1f4e6850334da895d27edb9580f62"
|
|||
|
||||
[[package]]
|
||||
name = "async-trait"
|
||||
version = "0.1.31"
|
||||
version = "0.1.36"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "26c4f3195085c36ea8d24d32b2f828d23296a9370a28aa39d111f6f16bef9f3b"
|
||||
checksum = "a265e3abeffdce30b2e26b7a11b222fe37c6067404001b434101457d0385eb92"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
@ -453,15 +453,14 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "cloudevents-sdk"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7a971dc6acd87980d58a5bab97f27dc62508bd0aa4fb057333d351c48304d556"
|
||||
checksum = "7c814591b300c224c5705c7579a4c80d68aa3472c0d9f0da8c20a74ce40b4bed"
|
||||
dependencies = [
|
||||
"base64 0.12.1",
|
||||
"chrono",
|
||||
"delegate",
|
||||
"hostname",
|
||||
"lazy_static",
|
||||
"serde",
|
||||
"serde-value",
|
||||
"serde_json",
|
||||
|
@ -473,30 +472,30 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "cloudevents-sdk-actix-web"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "55ca203e31e58bb17bc857700a9ee696b2c599076d10896f14720b5db59071fb"
|
||||
checksum = "8d0b874f8f39a3c09b9d114c4d8e9976e23e95c1a9bce7842eca3b54ca13b413"
|
||||
dependencies = [
|
||||
"actix-rt",
|
||||
"actix-web",
|
||||
"async-trait",
|
||||
"bytes",
|
||||
"cloudevents-sdk",
|
||||
"futures",
|
||||
"lazy_static",
|
||||
"serde_json",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cloudevents-sdk-reqwest"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2f92f4beec5ec951c579a4a9f9d121d3936a5945242893ccc757d617f0c90f51"
|
||||
checksum = "99cd21a76c14f95331e162fcf6bbafb13d02c5fd5098c1c3e0424f9dddac929c"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"bytes",
|
||||
"cloudevents-sdk",
|
||||
"lazy_static",
|
||||
"reqwest",
|
||||
"serde_json",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
|
@ -21,9 +21,9 @@ edition = "2018"
|
|||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
cloudevents-sdk = "0.1.0"
|
||||
cloudevents-sdk-actix-web = "0.1.0"
|
||||
cloudevents-sdk-reqwest = "0.1.0"
|
||||
cloudevents-sdk = "0.2.0"
|
||||
cloudevents-sdk-actix-web = "0.2.0"
|
||||
cloudevents-sdk-reqwest = "0.2.0"
|
||||
reqwest = { version = "0.10.4", default-features = false, features = ["rustls-tls"] }
|
||||
actix-web = "2"
|
||||
actix-rt = "1"
|
||||
|
|
|
@ -20,34 +20,29 @@ extern crate log;
|
|||
use actix_web::dev::HttpResponseBuilder;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::{post, web, App, HttpRequest, HttpResponse, HttpServer};
|
||||
use cloudevents::event::EventBuilderV10;
|
||||
use reqwest;
|
||||
use url::Url;
|
||||
use cloudevents::{EventBuilder, EventBuilderV10};
|
||||
use cloudevents_sdk_actix_web::{RequestExt, HttpResponseBuilderExt};
|
||||
use cloudevents_sdk_reqwest::RequestBuilderExt;
|
||||
|
||||
#[post("/")]
|
||||
async fn reply_event(
|
||||
req: HttpRequest,
|
||||
payload: web::Payload,
|
||||
) -> Result<HttpResponse, actix_web::Error> {
|
||||
let request_event = cloudevents_sdk_actix_web::request_to_event(&req, payload).await?;
|
||||
let request_event = req.into_event(payload).await?;
|
||||
info!("Received Event: {:?}", request_event);
|
||||
|
||||
// Build response event cloning the original event and setting the new type and source
|
||||
let response_event = EventBuilderV10::from(request_event)
|
||||
.source(
|
||||
Url::parse(
|
||||
"https://github.com/knative/docs/docs/serving/samples/cloudevents/cloudevents-rust",
|
||||
)
|
||||
.unwrap(),
|
||||
)
|
||||
.source("https://github.com/knative/docs/docs/serving/samples/cloudevents/cloudevents-rust")
|
||||
.ty("dev.knative.docs.sample")
|
||||
.build();
|
||||
.build()
|
||||
// If i can't build the event, fail with internal server error
|
||||
.map_err(actix_web::error::ErrorInternalServerError)?;
|
||||
|
||||
cloudevents_sdk_actix_web::event_to_response(
|
||||
response_event,
|
||||
HttpResponseBuilder::new(StatusCode::OK),
|
||||
)
|
||||
.await
|
||||
HttpResponseBuilder::new(StatusCode::OK)
|
||||
.event(response_event)
|
||||
.await
|
||||
}
|
||||
|
||||
#[post("/")]
|
||||
|
@ -58,23 +53,20 @@ async fn forward_event(
|
|||
) -> Result<HttpResponse, actix_web::Error> {
|
||||
let sink_url: &str = &sink_url;
|
||||
|
||||
let request_event = cloudevents_sdk_actix_web::request_to_event(&req, payload).await?;
|
||||
let request_event = req.into_event(payload).await?;
|
||||
info!("Received Event: {:?}", request_event);
|
||||
|
||||
// Build response event cloning the original event and setting the new type and source
|
||||
let forward_event = EventBuilderV10::from(request_event)
|
||||
.source(
|
||||
Url::parse(
|
||||
"https://github.com/knative/docs/docs/serving/samples/cloudevents/cloudevents-rust",
|
||||
)
|
||||
.unwrap(),
|
||||
)
|
||||
.source("https://github.com/knative/docs/docs/serving/samples/cloudevents/cloudevents-rust")
|
||||
.ty("dev.knative.docs.sample")
|
||||
.build();
|
||||
.build()
|
||||
// If i can't build the event, fail with internal server error
|
||||
.map_err(actix_web::error::ErrorInternalServerError)?;
|
||||
|
||||
let client = reqwest::Client::new();
|
||||
let response = cloudevents_sdk_reqwest::event_to_request(forward_event, client.post(sink_url))
|
||||
// If i can't build the request, fail with internal server error
|
||||
let response = client.post(sink_url)
|
||||
.event(forward_event)
|
||||
.map_err(actix_web::error::ErrorInternalServerError)?
|
||||
.send()
|
||||
.await
|
||||
|
|
Loading…
Reference in New Issue