11package in .erail .amazon .lambda .service ;
22
33import com .google .common .base .Joiner ;
4+ import in .erail .model .Event ;
45import in .erail .model .RequestEvent ;
56import in .erail .model .ResponseEvent ;
67import in .erail .server .Server ;
78import in .erail .service .RESTServiceImpl ;
89import io .reactivex .Maybe ;
10+ import io .reactivex .MaybeSource ;
911import io .vertx .reactivex .core .MultiMap ;
1012import io .vertx .reactivex .core .buffer .Buffer ;
1113import io .vertx .reactivex .ext .web .client .HttpRequest ;
@@ -75,9 +77,14 @@ protected String generateURL(RequestEvent pRequest) {
7577 return sb .toString ();
7678 }
7779
78- @ Override
79- public Maybe <ResponseEvent > process (RequestEvent proxyRequest ) {
80+ public MaybeSource <Event > process (Maybe <Event > pRequest ) {
81+ return pRequest .flatMap (this ::handle );
82+ }
83+
84+ public Maybe <Event > handle (Event pEvent ) {
8085
86+ RequestEvent proxyRequest = pEvent .getRequest ();
87+
8188 //Build Request
8289 HttpRequest <Buffer > clientRequest = getWebClient ().requestAbs (proxyRequest .getHttpMethod (), generateURL (proxyRequest ));
8390
@@ -97,27 +104,28 @@ public Maybe<ResponseEvent> process(RequestEvent proxyRequest) {
97104 return clientRequest
98105 .rxSendBuffer (Buffer .buffer (body ))
99106 .map ((resp ) -> {
100- ResponseEvent event = new ResponseEvent ();
107+ ResponseEvent responseEvent = pEvent . getResponse ();
101108
102109 //Add Headers
103110 Optional
104111 .ofNullable (resp .headers ())
105112 .orElse (MultiMap .caseInsensitiveMultiMap ())
106113 .entries ()
107114 .stream ()
108- .forEach ((t ) -> event .addHeader (t .getKey (), t .getValue ()));
115+ .forEach ((t ) -> responseEvent .addHeader (t .getKey (), t .getValue ()));
116+
117+ responseEvent .setStatusCode (resp .statusCode ());
118+ responseEvent .setIsBase64Encoded (true );
109119
110- event .setStatusCode (resp .statusCode ());
111- event .setIsBase64Encoded (true );
112-
113120 Optional
114121 .ofNullable (resp .body ())
115- .ifPresent (b -> event .setBody (b .getBytes ()));
116-
117- return event ;
122+ .ifPresent (b -> responseEvent .setBody (b .getBytes ()));
123+
124+ return pEvent ;
118125 })
119126 .doOnSuccess (e -> getLog ().debug (() -> e .toString ()))
120127 .toMaybe ();
128+
121129 }
122130
123131 public String getHost () {
0 commit comments