mirror of
https://github.com/nolen777/eagle0.git
synced 2026-07-28 20:55:44 +00:00
Query parameters support all male or all female names (#2312)
* Support query parameters for all male or all female names * Use the APIGateway response too * Cleanup Former-commit-id: aae671ee7015ddc02bae1b8ea9d4454677dbe454
This commit is contained in:
@@ -134,6 +134,7 @@ maven_install(
|
||||
"org.scalamock:scalamock_2.13:5.2.0",
|
||||
"com.amazonaws:aws-java-sdk-s3:1.12.205",
|
||||
"com.amazonaws:aws-lambda-java-core:1.2.2",
|
||||
"com.amazonaws:aws-lambda-java-events:3.11.0",
|
||||
"javax.xml.bind:jaxb-api:2.3.1",
|
||||
],
|
||||
fail_if_repin_required = True,
|
||||
|
||||
+17
-2
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"dependency_tree": {
|
||||
"__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL",
|
||||
"__INPUT_ARTIFACTS_HASH": -1992922059,
|
||||
"__RESOLVED_ARTIFACTS_HASH": 1018919370,
|
||||
"__INPUT_ARTIFACTS_HASH": 697523098,
|
||||
"__RESOLVED_ARTIFACTS_HASH": 1427786775,
|
||||
"conflict_resolution": {},
|
||||
"dependencies": [
|
||||
{
|
||||
@@ -105,6 +105,21 @@
|
||||
"sha256": "09bbd5f426d70ed9a40c2090a6c6a60277058d4e1e1c6d61de1d4a0bf3cee9f2",
|
||||
"url": "https://repo1.maven.org/maven2/com/amazonaws/aws-lambda-java-core/1.2.2/aws-lambda-java-core-1.2.2.jar"
|
||||
},
|
||||
{
|
||||
"coord": "com.amazonaws:aws-lambda-java-events:3.11.0",
|
||||
"dependencies": [
|
||||
"joda-time:joda-time:2.8.1"
|
||||
],
|
||||
"directDependencies": [
|
||||
"joda-time:joda-time:2.8.1"
|
||||
],
|
||||
"file": "v1/https/repo1.maven.org/maven2/com/amazonaws/aws-lambda-java-events/3.11.0/aws-lambda-java-events-3.11.0.jar",
|
||||
"mirror_urls": [
|
||||
"https://repo1.maven.org/maven2/com/amazonaws/aws-lambda-java-events/3.11.0/aws-lambda-java-events-3.11.0.jar"
|
||||
],
|
||||
"sha256": "862628d15468888ad8ae845928f2fc72f8d041adb55444e21b8175c1e10c1f3c",
|
||||
"url": "https://repo1.maven.org/maven2/com/amazonaws/aws-lambda-java-events/3.11.0/aws-lambda-java-events-3.11.0.jar"
|
||||
},
|
||||
{
|
||||
"coord": "com.amazonaws:jmespath-java:1.12.205",
|
||||
"dependencies": [
|
||||
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
bazel build //src/main/java/net/eagle0/common/name_generation:name_generation_lambda_deploy.jar
|
||||
aws s3 cp \
|
||||
bazel-bin/src/main/java/net/eagle0/common/name_generation/name_generation_lambda_deploy.jar \
|
||||
s3://eagle0/lambdas/name_generation_lambda_deploy.jar
|
||||
aws lambda update-function-code \
|
||||
--function-name Name_Generator \
|
||||
--s3-bucket eagle0 \
|
||||
--s3-key lambdas/name_generation_lambda_deploy.jar
|
||||
@@ -3,14 +3,8 @@ java_binary(
|
||||
srcs = ["NameGenerationHandler.java"],
|
||||
main_class = "net.eagle0.common.name_generation.NameGenerationHandler",
|
||||
deps = [
|
||||
":name_generation_event",
|
||||
"//src/main/scala/net/eagle0/common/name_generation:name_generator",
|
||||
"//src/main/scala/net/eagle0/common/name_generation:string_construction_token",
|
||||
"@maven//:com_amazonaws_aws_lambda_java_core",
|
||||
"@maven//:com_amazonaws_aws_lambda_java_events",
|
||||
],
|
||||
)
|
||||
|
||||
java_library(
|
||||
name = "name_generation_event",
|
||||
srcs = ["NameGenerationEvent.java"],
|
||||
)
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
package net.eagle0.common.name_generation;
|
||||
|
||||
public class NameGenerationEvent {
|
||||
public static class RequestContext {
|
||||
public static class Identity {
|
||||
public String sourceIp;
|
||||
}
|
||||
|
||||
public Identity identity;
|
||||
}
|
||||
public String body;
|
||||
public RequestContext requestContext;
|
||||
}
|
||||
@@ -1,13 +1,15 @@
|
||||
package net.eagle0.common.name_generation;
|
||||
|
||||
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
|
||||
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
|
||||
import com.amazonaws.services.lambda.runtime.Context;
|
||||
import com.amazonaws.services.lambda.runtime.RequestHandler;
|
||||
|
||||
import java.net.HttpURLConnection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class NameGenerationHandler implements RequestHandler<NameGenerationEvent, Map<String, Object>> {
|
||||
public class NameGenerationHandler implements RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {
|
||||
private final NameGenerator nameGenerator = new NameGenerator();
|
||||
|
||||
private static final Map<String, String> responseHeaders = Map.of("content-type", "text/html; charset=UTF-8");
|
||||
@@ -18,24 +20,44 @@ public class NameGenerationHandler implements RequestHandler<NameGenerationEvent
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Object> handleRequest(NameGenerationEvent event, Context context) {
|
||||
public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent event, Context context) {
|
||||
var logger = context.getLogger();
|
||||
|
||||
var parameters = event.getQueryStringParameters();
|
||||
logger.log("Got a request\n");
|
||||
logger.log("Query string parameters: " + parameters);
|
||||
|
||||
var response = new HashMap<String, Object>();
|
||||
Supplier<String> nameGetter = nameGenerator::nextName;
|
||||
if (parameters != null) {
|
||||
if (parameters.containsKey("female")) {
|
||||
logger.log("Female names\n");
|
||||
nameGetter = nameGenerator::nextFemaleName;
|
||||
} else if (parameters.containsKey("male")) {
|
||||
logger.log("Male names\n");
|
||||
nameGetter = nameGenerator::nextMaleName;
|
||||
} else if (parameters.containsKey("neutral")) {
|
||||
logger.log("Neutral names\n");
|
||||
nameGetter = nameGenerator::nextNeutralName;
|
||||
} else {
|
||||
logger.log("All names\n");
|
||||
nameGetter = nameGenerator::nextName;
|
||||
}
|
||||
}
|
||||
|
||||
var response = new APIGatewayProxyResponseEvent();
|
||||
|
||||
StringBuilder nameStr = new StringBuilder();
|
||||
for (int i=0; i<25; i++) {
|
||||
nameStr.append(nameGenerator.nextName());
|
||||
for (int i = 0; i < 25; i++) {
|
||||
nameStr.append(nameGetter.get());
|
||||
nameStr.append("<p>");
|
||||
}
|
||||
var responseString = nameStr.toString();
|
||||
logger.log(responseString);
|
||||
|
||||
response.put("headers", responseHeaders);
|
||||
response.put("statusCode", HttpURLConnection.HTTP_OK);
|
||||
response.put("body", responseString);
|
||||
response.setHeaders(responseHeaders);
|
||||
response.setBody(responseString);
|
||||
response.setStatusCode(HttpURLConnection.HTTP_OK);
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,10 +10,9 @@ scala_library(
|
||||
"//src/main/java/net/eagle0/common/name_generation:__pkg__",
|
||||
],
|
||||
deps = [
|
||||
"//src/main/scala/net/eagle0/common:functional_random",
|
||||
# ":string_construction_parser",
|
||||
":string_construction_token",
|
||||
":string_construction_token_generator",
|
||||
"//src/main/scala/net/eagle0/common:functional_random",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -21,7 +20,6 @@ scala_library(
|
||||
name = "string_construction_parser",
|
||||
srcs = ["StringConstructionParser.scala"],
|
||||
visibility = [
|
||||
"//src/main/java/net/eagle0/common/name_generation:__pkg__",
|
||||
"//src/test/scala/net/eagle0/common/name_generation:__pkg__",
|
||||
],
|
||||
deps = [
|
||||
@@ -43,7 +41,6 @@ scala_library(
|
||||
name = "string_construction_token",
|
||||
srcs = ["StringConstructionToken.scala"],
|
||||
visibility = [
|
||||
"//src/main/java/net/eagle0/common/name_generation:__pkg__",
|
||||
"//src/test/scala/net/eagle0/common/name_generation:__pkg__",
|
||||
],
|
||||
deps = [
|
||||
|
||||
@@ -26,6 +26,13 @@ class NameGenerator {
|
||||
atSpecializations = Vector("male")
|
||||
)
|
||||
|
||||
def nextFemaleName(): String =
|
||||
femaleTok.nextString(random, substitutions).newValue
|
||||
def nextMaleName(): String =
|
||||
maleTok.nextString(random, substitutions).newValue
|
||||
def nextNeutralName(): String =
|
||||
allTok.nextString(random, substitutions).newValue
|
||||
|
||||
def nextName(): String = {
|
||||
val intR = random.nextInt(0, 20)
|
||||
val newInt = intR.newValue
|
||||
|
||||
Reference in New Issue
Block a user