Skip to content

Commit 5c2d5a9

Browse files
authored
Merge pull request #9 from vinscom/develop
dev-to-master
2 parents 0eed797 + e72128e commit 5c2d5a9

File tree

4 files changed

+39
-24
lines changed

4 files changed

+39
-24
lines changed

pom.xml

+8-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>in.erail</groupId>
55
<artifactId>api-framework-amazon-lambda</artifactId>
6-
<version>2.4.3</version>
6+
<version>2.4.4</version>
77
<packaging>jar</packaging>
88
<developers>
99
<developer>
@@ -15,7 +15,7 @@
1515
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1616
<maven.compiler.source>1.8</maven.compiler.source>
1717
<maven.compiler.target>1.8</maven.compiler.target>
18-
<api.framework.version>2.4.3</api.framework.version>
18+
<api.framework.version>2.4.4</api.framework.version>
1919
<layer.api.framework>${settings.localRepository}/in/erail/api-framework/${api.framework.version}/api-framework-${api.framework.version}-common-config.zip</layer.api.framework>
2020
<layer.api.framework.lambda.common>${project.basedir}/config-layers/common</layer.api.framework.lambda.common>
2121
<layer.api.framework.lambda.test>${project.basedir}/config-layers/test</layer.api.framework.lambda.test>
@@ -78,6 +78,12 @@
7878
<goals>
7979
<goal>sign</goal>
8080
</goals>
81+
<configuration>
82+
<gpgArguments>
83+
<arg>--pinentry-mode</arg>
84+
<arg>loopback</arg>
85+
</gpgArguments>
86+
</configuration>
8187
</execution>
8288
</executions>
8389
</plugin>

src/main/java/in/erail/amazon/lambda/AWSLambda.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.google.common.base.Strings;
77
import com.google.common.io.ByteStreams;
88
import in.erail.glue.Glue;
9+
import in.erail.model.Event;
910
import in.erail.service.RESTService;
1011
import io.reactivex.Single;
1112
import io.reactivex.schedulers.Schedulers;
@@ -16,7 +17,6 @@
1617
import java.io.OutputStream;
1718
import java.io.OutputStreamWriter;
1819
import in.erail.model.RequestEvent;
19-
import in.erail.model.ResponseEvent;
2020
import java.util.ArrayList;
2121
import java.util.HashSet;
2222
import java.util.List;
@@ -69,11 +69,11 @@ public Single<String> handleMessage(JsonObject pRequest) {
6969
.just(pRequest)
7070
.subscribeOn(Schedulers.computation())
7171
.map(this::convertBodyToBase64)
72-
.map(reqJson -> reqJson.mapTo(RequestEvent.class))
72+
.map(reqJson -> reqJson.mapTo(getService().getRequestEventClass()))
7373
.doOnSuccess(this::populateSystemProperties)
74-
.flatMapMaybe(req -> getService().process(req))
75-
.toSingle(new ResponseEvent())
76-
.map(resp -> JsonObject.mapFrom(resp))
74+
.flatMapMaybe(req -> getService().handleEvent(getService().createEvent(req)))
75+
.toSingle(new Event())
76+
.map(resp -> JsonObject.mapFrom(resp.getResponse()))
7777
.map(this::sanatizeResponse)
7878
.map(respJson -> respJson.toString());
7979
}

src/main/java/in/erail/amazon/lambda/service/ProxyService.java

+18-10
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package in.erail.amazon.lambda.service;
22

33
import com.google.common.base.Joiner;
4+
import in.erail.model.Event;
45
import in.erail.model.RequestEvent;
56
import in.erail.model.ResponseEvent;
67
import in.erail.server.Server;
78
import in.erail.service.RESTServiceImpl;
89
import io.reactivex.Maybe;
10+
import io.reactivex.MaybeSource;
911
import io.vertx.reactivex.core.MultiMap;
1012
import io.vertx.reactivex.core.buffer.Buffer;
1113
import 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() {

src/main/java/in/erail/service/HelloService.java

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package in.erail.service;
22

33
import com.google.common.net.MediaType;
4-
import in.erail.model.RequestEvent;
5-
import in.erail.model.ResponseEvent;
4+
import in.erail.model.Event;
65
import io.reactivex.Maybe;
6+
import io.reactivex.MaybeSource;
77
import io.vertx.core.json.JsonArray;
88

99
public class HelloService extends RESTServiceImpl {
@@ -19,12 +19,13 @@ public HelloService() {
1919
}
2020

2121
@Override
22-
public Maybe<ResponseEvent> process(RequestEvent pRequest) {
23-
return Maybe.just(new ResponseEvent()
24-
.setBody(getHelloData().toString().getBytes())
25-
.setMediaType(MediaType.JSON_UTF_8));
22+
public MaybeSource<Event> process(Maybe<Event> pEvent) {
23+
return pEvent.doOnSuccess(e -> e
24+
.getResponse()
25+
.setBody(getHelloData().toString().getBytes())
26+
.setMediaType(MediaType.JSON_UTF_8));
2627
}
27-
28+
2829
public JsonArray getHelloData() {
2930
return mHelloData;
3031
}

0 commit comments

Comments
 (0)