From afdecdab75de7769d71b2c03662f153f64f262e4 Mon Sep 17 00:00:00 2001 From: Julien Lengrand-Lambert Date: Fri, 18 Oct 2019 15:00:39 +0200 Subject: [PATCH 1/6] Introduce backend project and rename dialogflow agent --- .../.gitignore | 0 .../pom.xml | 4 +- .../src/main/java/CreateAgent.java | 0 .../src/main/java/DialogFlow.java | 0 .../src/main/java/EntityCreator.java | 0 .../src/main/java/data/ReadNames.java | 0 .../src/main/resources/names | 0 .../src/main/resources/names_composite | 0 dialogflow-fun-backend/.gitignore | 31 ++++++++++ dialogflow-fun-backend/pom.xml | 56 +++++++++++++++++++ .../DialogflowFunBackendApplication.java | 20 +++++++ .../ServletInitializer.java | 13 +++++ .../src/main/resources/application.properties | 1 + .../DialogflowFunBackendApplicationTests.java | 13 +++++ dialogflow-fun-java/.project | 23 -------- .../.settings/org.eclipse.jdt.apt.core.prefs | 2 - .../.settings/org.eclipse.jdt.core.prefs | 9 --- .../.settings/org.eclipse.m2e.core.prefs | 4 -- dialogflow-fun-java/dialogflowfun.iml | 2 - pom.xml | 5 +- 20 files changed, 141 insertions(+), 42 deletions(-) rename {dialogflow-fun-java => dialogflow-fun-agent}/.gitignore (100%) rename {dialogflow-fun-java => dialogflow-fun-agent}/pom.xml (81%) rename {dialogflow-fun-java => dialogflow-fun-agent}/src/main/java/CreateAgent.java (100%) rename {dialogflow-fun-java => dialogflow-fun-agent}/src/main/java/DialogFlow.java (100%) rename {dialogflow-fun-java => dialogflow-fun-agent}/src/main/java/EntityCreator.java (100%) rename {dialogflow-fun-java => dialogflow-fun-agent}/src/main/java/data/ReadNames.java (100%) rename {dialogflow-fun-java => dialogflow-fun-agent}/src/main/resources/names (100%) rename {dialogflow-fun-java => dialogflow-fun-agent}/src/main/resources/names_composite (100%) create mode 100644 dialogflow-fun-backend/.gitignore create mode 100644 dialogflow-fun-backend/pom.xml create mode 100644 dialogflow-fun-backend/src/main/java/fr/lengrand/dialogflowfunbackend/DialogflowFunBackendApplication.java create mode 100644 dialogflow-fun-backend/src/main/java/fr/lengrand/dialogflowfunbackend/ServletInitializer.java create mode 100644 dialogflow-fun-backend/src/main/resources/application.properties create mode 100644 dialogflow-fun-backend/src/test/java/fr/lengrand/dialogflowfunbackend/DialogflowFunBackendApplicationTests.java delete mode 100644 dialogflow-fun-java/.project delete mode 100644 dialogflow-fun-java/.settings/org.eclipse.jdt.apt.core.prefs delete mode 100644 dialogflow-fun-java/.settings/org.eclipse.jdt.core.prefs delete mode 100644 dialogflow-fun-java/.settings/org.eclipse.m2e.core.prefs delete mode 100644 dialogflow-fun-java/dialogflowfun.iml diff --git a/dialogflow-fun-java/.gitignore b/dialogflow-fun-agent/.gitignore similarity index 100% rename from dialogflow-fun-java/.gitignore rename to dialogflow-fun-agent/.gitignore diff --git a/dialogflow-fun-java/pom.xml b/dialogflow-fun-agent/pom.xml similarity index 81% rename from dialogflow-fun-java/pom.xml rename to dialogflow-fun-agent/pom.xml index 347587c..7899555 100644 --- a/dialogflow-fun-java/pom.xml +++ b/dialogflow-fun-agent/pom.xml @@ -3,10 +3,12 @@ 4.0.0 fr.lengrand - dialogflow-fun + dialogflow-fun-agentw 1.0-SNAPSHOT + UTF-8 + UTF-8 11 11 11 diff --git a/dialogflow-fun-java/src/main/java/CreateAgent.java b/dialogflow-fun-agent/src/main/java/CreateAgent.java similarity index 100% rename from dialogflow-fun-java/src/main/java/CreateAgent.java rename to dialogflow-fun-agent/src/main/java/CreateAgent.java diff --git a/dialogflow-fun-java/src/main/java/DialogFlow.java b/dialogflow-fun-agent/src/main/java/DialogFlow.java similarity index 100% rename from dialogflow-fun-java/src/main/java/DialogFlow.java rename to dialogflow-fun-agent/src/main/java/DialogFlow.java diff --git a/dialogflow-fun-java/src/main/java/EntityCreator.java b/dialogflow-fun-agent/src/main/java/EntityCreator.java similarity index 100% rename from dialogflow-fun-java/src/main/java/EntityCreator.java rename to dialogflow-fun-agent/src/main/java/EntityCreator.java diff --git a/dialogflow-fun-java/src/main/java/data/ReadNames.java b/dialogflow-fun-agent/src/main/java/data/ReadNames.java similarity index 100% rename from dialogflow-fun-java/src/main/java/data/ReadNames.java rename to dialogflow-fun-agent/src/main/java/data/ReadNames.java diff --git a/dialogflow-fun-java/src/main/resources/names b/dialogflow-fun-agent/src/main/resources/names similarity index 100% rename from dialogflow-fun-java/src/main/resources/names rename to dialogflow-fun-agent/src/main/resources/names diff --git a/dialogflow-fun-java/src/main/resources/names_composite b/dialogflow-fun-agent/src/main/resources/names_composite similarity index 100% rename from dialogflow-fun-java/src/main/resources/names_composite rename to dialogflow-fun-agent/src/main/resources/names_composite diff --git a/dialogflow-fun-backend/.gitignore b/dialogflow-fun-backend/.gitignore new file mode 100644 index 0000000..a2a3040 --- /dev/null +++ b/dialogflow-fun-backend/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/dialogflow-fun-backend/pom.xml b/dialogflow-fun-backend/pom.xml new file mode 100644 index 0000000..6c64bef --- /dev/null +++ b/dialogflow-fun-backend/pom.xml @@ -0,0 +1,56 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.2.0.RELEASE + + + fr.lengrand + dialogflow-fun-backend + 0.0.1-SNAPSHOT + war + dialogflow-fun-backend + Bank API dummy for Dialog Flow + + + UTF-8 + UTF-8 + 1.8 + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-tomcat + provided + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + \ No newline at end of file diff --git a/dialogflow-fun-backend/src/main/java/fr/lengrand/dialogflowfunbackend/DialogflowFunBackendApplication.java b/dialogflow-fun-backend/src/main/java/fr/lengrand/dialogflowfunbackend/DialogflowFunBackendApplication.java new file mode 100644 index 0000000..b910e71 --- /dev/null +++ b/dialogflow-fun-backend/src/main/java/fr/lengrand/dialogflowfunbackend/DialogflowFunBackendApplication.java @@ -0,0 +1,20 @@ +package fr.lengrand.dialogflowfunbackend; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@SpringBootApplication +@RestController +public class DialogflowFunBackendApplication { + + public static void main(String[] args) { + SpringApplication.run(DialogflowFunBackendApplication.class, args); + } + + @GetMapping("/") + public String hello() { + return "Hello Spring Boot!"; + } +} diff --git a/dialogflow-fun-backend/src/main/java/fr/lengrand/dialogflowfunbackend/ServletInitializer.java b/dialogflow-fun-backend/src/main/java/fr/lengrand/dialogflowfunbackend/ServletInitializer.java new file mode 100644 index 0000000..526e071 --- /dev/null +++ b/dialogflow-fun-backend/src/main/java/fr/lengrand/dialogflowfunbackend/ServletInitializer.java @@ -0,0 +1,13 @@ +package fr.lengrand.dialogflowfunbackend; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +public class ServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(DialogflowFunBackendApplication.class); + } + +} diff --git a/dialogflow-fun-backend/src/main/resources/application.properties b/dialogflow-fun-backend/src/main/resources/application.properties new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/dialogflow-fun-backend/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/dialogflow-fun-backend/src/test/java/fr/lengrand/dialogflowfunbackend/DialogflowFunBackendApplicationTests.java b/dialogflow-fun-backend/src/test/java/fr/lengrand/dialogflowfunbackend/DialogflowFunBackendApplicationTests.java new file mode 100644 index 0000000..33f2cae --- /dev/null +++ b/dialogflow-fun-backend/src/test/java/fr/lengrand/dialogflowfunbackend/DialogflowFunBackendApplicationTests.java @@ -0,0 +1,13 @@ +package fr.lengrand.dialogflowfunbackend; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class DialogflowFunBackendApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/dialogflow-fun-java/.project b/dialogflow-fun-java/.project deleted file mode 100644 index 5152aee..0000000 --- a/dialogflow-fun-java/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - dialogflow-fun - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - - diff --git a/dialogflow-fun-java/.settings/org.eclipse.jdt.apt.core.prefs b/dialogflow-fun-java/.settings/org.eclipse.jdt.apt.core.prefs deleted file mode 100644 index d4313d4..0000000 --- a/dialogflow-fun-java/.settings/org.eclipse.jdt.apt.core.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.apt.aptEnabled=false diff --git a/dialogflow-fun-java/.settings/org.eclipse.jdt.core.prefs b/dialogflow-fun-java/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 46235dc..0000000 --- a/dialogflow-fun-java/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,9 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 -org.eclipse.jdt.core.compiler.compliance=11 -org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore -org.eclipse.jdt.core.compiler.processAnnotations=disabled -org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=11 diff --git a/dialogflow-fun-java/.settings/org.eclipse.m2e.core.prefs b/dialogflow-fun-java/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f..0000000 --- a/dialogflow-fun-java/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/dialogflow-fun-java/dialogflowfun.iml b/dialogflow-fun-java/dialogflowfun.iml deleted file mode 100644 index 78b2cc5..0000000 --- a/dialogflow-fun-java/dialogflowfun.iml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index 93c7a47..35fd19e 100644 --- a/pom.xml +++ b/pom.xml @@ -8,12 +8,15 @@ 1.0-SNAPSHOT + UTF-8 + UTF-8 11 11 11 - dialogflow-fun-java + dialogflow-fun-agent + dialogflow-fun-backend \ No newline at end of file From c2615ce5aead76f469478619b6cc30cd030182af Mon Sep 17 00:00:00 2001 From: Julien Lengrand-Lambert Date: Fri, 18 Oct 2019 15:08:11 +0200 Subject: [PATCH 2/6] Fixing typo --- dialogflow-fun-agent/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dialogflow-fun-agent/pom.xml b/dialogflow-fun-agent/pom.xml index 7899555..e7e9002 100644 --- a/dialogflow-fun-agent/pom.xml +++ b/dialogflow-fun-agent/pom.xml @@ -3,7 +3,7 @@ 4.0.0 fr.lengrand - dialogflow-fun-agentw + dialogflow-fun-agent 1.0-SNAPSHOT From df3ac8754a39cce3b79eef37368077d86e0d148e Mon Sep 17 00:00:00 2001 From: Julien Lengrand-Lambert Date: Fri, 18 Oct 2019 15:55:18 +0200 Subject: [PATCH 3/6] Deploy Spring Boot App on GAE --- dialogflow-fun-backend/.gitignore | 31 ---------- dialogflow-fun-backend/pom.xml | 56 ------------------- .../DialogflowFunBackendApplication.java | 20 ------- .../ServletInitializer.java | 13 ----- .../src/main/resources/application.properties | 1 - .../DialogflowFunBackendApplicationTests.java | 13 ----- pom.xml | 2 +- 7 files changed, 1 insertion(+), 135 deletions(-) delete mode 100644 dialogflow-fun-backend/.gitignore delete mode 100644 dialogflow-fun-backend/pom.xml delete mode 100644 dialogflow-fun-backend/src/main/java/fr/lengrand/dialogflowfunbackend/DialogflowFunBackendApplication.java delete mode 100644 dialogflow-fun-backend/src/main/java/fr/lengrand/dialogflowfunbackend/ServletInitializer.java delete mode 100644 dialogflow-fun-backend/src/main/resources/application.properties delete mode 100644 dialogflow-fun-backend/src/test/java/fr/lengrand/dialogflowfunbackend/DialogflowFunBackendApplicationTests.java diff --git a/dialogflow-fun-backend/.gitignore b/dialogflow-fun-backend/.gitignore deleted file mode 100644 index a2a3040..0000000 --- a/dialogflow-fun-backend/.gitignore +++ /dev/null @@ -1,31 +0,0 @@ -HELP.md -target/ -!.mvn/wrapper/maven-wrapper.jar -!**/src/main/** -!**/src/test/** - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -build/ - -### VS Code ### -.vscode/ diff --git a/dialogflow-fun-backend/pom.xml b/dialogflow-fun-backend/pom.xml deleted file mode 100644 index 6c64bef..0000000 --- a/dialogflow-fun-backend/pom.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.2.0.RELEASE - - - fr.lengrand - dialogflow-fun-backend - 0.0.1-SNAPSHOT - war - dialogflow-fun-backend - Bank API dummy for Dialog Flow - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-tomcat - provided - - - org.springframework.boot - spring-boot-starter-test - test - - - org.junit.vintage - junit-vintage-engine - - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - \ No newline at end of file diff --git a/dialogflow-fun-backend/src/main/java/fr/lengrand/dialogflowfunbackend/DialogflowFunBackendApplication.java b/dialogflow-fun-backend/src/main/java/fr/lengrand/dialogflowfunbackend/DialogflowFunBackendApplication.java deleted file mode 100644 index b910e71..0000000 --- a/dialogflow-fun-backend/src/main/java/fr/lengrand/dialogflowfunbackend/DialogflowFunBackendApplication.java +++ /dev/null @@ -1,20 +0,0 @@ -package fr.lengrand.dialogflowfunbackend; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -@SpringBootApplication -@RestController -public class DialogflowFunBackendApplication { - - public static void main(String[] args) { - SpringApplication.run(DialogflowFunBackendApplication.class, args); - } - - @GetMapping("/") - public String hello() { - return "Hello Spring Boot!"; - } -} diff --git a/dialogflow-fun-backend/src/main/java/fr/lengrand/dialogflowfunbackend/ServletInitializer.java b/dialogflow-fun-backend/src/main/java/fr/lengrand/dialogflowfunbackend/ServletInitializer.java deleted file mode 100644 index 526e071..0000000 --- a/dialogflow-fun-backend/src/main/java/fr/lengrand/dialogflowfunbackend/ServletInitializer.java +++ /dev/null @@ -1,13 +0,0 @@ -package fr.lengrand.dialogflowfunbackend; - -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; - -public class ServletInitializer extends SpringBootServletInitializer { - - @Override - protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { - return application.sources(DialogflowFunBackendApplication.class); - } - -} diff --git a/dialogflow-fun-backend/src/main/resources/application.properties b/dialogflow-fun-backend/src/main/resources/application.properties deleted file mode 100644 index 8b13789..0000000 --- a/dialogflow-fun-backend/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ - diff --git a/dialogflow-fun-backend/src/test/java/fr/lengrand/dialogflowfunbackend/DialogflowFunBackendApplicationTests.java b/dialogflow-fun-backend/src/test/java/fr/lengrand/dialogflowfunbackend/DialogflowFunBackendApplicationTests.java deleted file mode 100644 index 33f2cae..0000000 --- a/dialogflow-fun-backend/src/test/java/fr/lengrand/dialogflowfunbackend/DialogflowFunBackendApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package fr.lengrand.dialogflowfunbackend; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class DialogflowFunBackendApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/pom.xml b/pom.xml index 35fd19e..ccb5af1 100644 --- a/pom.xml +++ b/pom.xml @@ -17,6 +17,6 @@ dialogflow-fun-agent - dialogflow-fun-backend + dialogflow-fun-api \ No newline at end of file From 8288d1f0e784a6228b88a6ec2d1022f85e422868 Mon Sep 17 00:00:00 2001 From: Julien Lengrand-Lambert Date: Fri, 18 Oct 2019 16:01:58 +0200 Subject: [PATCH 4/6] Add api project --- dialogflow-fun-api/.gitignore | 31 ++++++++++ dialogflow-fun-api/pom.xml | 58 +++++++++++++++++++ .../src/main/appengine/app.yaml | 2 + .../DialogflowFunApiApplication.java | 20 +++++++ .../src/main/resources/application.properties | 1 + .../DialogflowFunApiApplicationTests.java | 13 +++++ 6 files changed, 125 insertions(+) create mode 100644 dialogflow-fun-api/.gitignore create mode 100644 dialogflow-fun-api/pom.xml create mode 100644 dialogflow-fun-api/src/main/appengine/app.yaml create mode 100644 dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/DialogflowFunApiApplication.java create mode 100644 dialogflow-fun-api/src/main/resources/application.properties create mode 100644 dialogflow-fun-api/src/test/java/fr/lengrand/dialogflowfunapi/DialogflowFunApiApplicationTests.java diff --git a/dialogflow-fun-api/.gitignore b/dialogflow-fun-api/.gitignore new file mode 100644 index 0000000..a2a3040 --- /dev/null +++ b/dialogflow-fun-api/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/dialogflow-fun-api/pom.xml b/dialogflow-fun-api/pom.xml new file mode 100644 index 0000000..3059e3b --- /dev/null +++ b/dialogflow-fun-api/pom.xml @@ -0,0 +1,58 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.2.0.RELEASE + + + fr.lengrand + dialogflow-fun-api + 0.0.1-SNAPSHOT + dialogflow-fun-api + Bank API dummy for Dialog Flow + + + 11 + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + com.google.cloud.tools + appengine-maven-plugin + 2.1.0 + + 1 + GCLOUD_CONFIG + + + + + + diff --git a/dialogflow-fun-api/src/main/appengine/app.yaml b/dialogflow-fun-api/src/main/appengine/app.yaml new file mode 100644 index 0000000..6ed5e6a --- /dev/null +++ b/dialogflow-fun-api/src/main/appengine/app.yaml @@ -0,0 +1,2 @@ +runtime: java11 +instance_class: F1 \ No newline at end of file diff --git a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/DialogflowFunApiApplication.java b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/DialogflowFunApiApplication.java new file mode 100644 index 0000000..aab9296 --- /dev/null +++ b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/DialogflowFunApiApplication.java @@ -0,0 +1,20 @@ +package fr.lengrand.dialogflowfunapi; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@SpringBootApplication +@RestController +public class DialogflowFunApiApplication { + + public static void main(String[] args) { + SpringApplication.run(DialogflowFunApiApplication.class, args); + } + + @GetMapping("/") + public String hello() { + return "hello world!"; + } +} diff --git a/dialogflow-fun-api/src/main/resources/application.properties b/dialogflow-fun-api/src/main/resources/application.properties new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/dialogflow-fun-api/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/dialogflow-fun-api/src/test/java/fr/lengrand/dialogflowfunapi/DialogflowFunApiApplicationTests.java b/dialogflow-fun-api/src/test/java/fr/lengrand/dialogflowfunapi/DialogflowFunApiApplicationTests.java new file mode 100644 index 0000000..10f2161 --- /dev/null +++ b/dialogflow-fun-api/src/test/java/fr/lengrand/dialogflowfunapi/DialogflowFunApiApplicationTests.java @@ -0,0 +1,13 @@ +package fr.lengrand.dialogflowfunapi; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class DialogflowFunApiApplicationTests { + + @Test + void contextLoads() { + } + +} From 8142d0f6b97eef1761bb32850cfe78daa0ba0636 Mon Sep 17 00:00:00 2001 From: Julien Lengrand-Lambert Date: Mon, 21 Oct 2019 16:22:56 +0200 Subject: [PATCH 5/6] Add support for authentication --- dialogflow-fun-api/pom.xml | 10 ++++ .../DialogflowFunApiApplication.java | 15 +++++ .../openbankproject/Auth.java | 60 +++++++++++++++++++ .../openbankproject/AuthToken.java | 14 +++++ .../openbankproject/JSONBodyHandler.java | 38 ++++++++++++ .../openbankproject/OpenBankCredentials.java | 31 ++++++++++ .../src/main/resources/application.properties | 4 +- 7 files changed, 171 insertions(+), 1 deletion(-) create mode 100644 dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/Auth.java create mode 100644 dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/AuthToken.java create mode 100644 dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/JSONBodyHandler.java create mode 100644 dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/OpenBankCredentials.java diff --git a/dialogflow-fun-api/pom.xml b/dialogflow-fun-api/pom.xml index 3059e3b..eefe0d4 100644 --- a/dialogflow-fun-api/pom.xml +++ b/dialogflow-fun-api/pom.xml @@ -35,6 +35,16 @@ + + org.eclipse + yasson + 1.0.3 + + + org.glassfish + javax.json + 1.1.4 + diff --git a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/DialogflowFunApiApplication.java b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/DialogflowFunApiApplication.java index aab9296..9b772e4 100644 --- a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/DialogflowFunApiApplication.java +++ b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/DialogflowFunApiApplication.java @@ -1,14 +1,22 @@ package fr.lengrand.dialogflowfunapi; +import fr.lengrand.dialogflowfunapi.openbankproject.Auth; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; +import java.io.IOException; + @SpringBootApplication @RestController public class DialogflowFunApiApplication { + @Autowired + private Auth auth; + public static void main(String[] args) { SpringApplication.run(DialogflowFunApiApplication.class, args); } @@ -17,4 +25,11 @@ public class DialogflowFunApiApplication { public String hello() { return "hello world!"; } + + @GetMapping("/auth") + public String auth() throws IOException, InterruptedException { + auth.authenticate(); // TODO: Should be done on start! + return auth.getAuthToken().isPresent()? auth.getAuthToken().get().getToken() : "No token!"; + } + } diff --git a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/Auth.java b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/Auth.java new file mode 100644 index 0000000..3f49511 --- /dev/null +++ b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/Auth.java @@ -0,0 +1,60 @@ +package fr.lengrand.dialogflowfunapi.openbankproject; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +import java.io.IOException; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.util.Optional; + +@Configuration +@ComponentScan +public class Auth { + + @Autowired + private OpenBankCredentials credentials; + + public static final String OBP_BASE_URL = "https://psd2-api.openbankproject.com"; + public static final String LOGIN_URL = "/my/logins/direct"; + + public JSONBodyHandler jsonBodyHandler = JSONBodyHandler.getHandler(AuthToken.class); + + private Optional authToken = Optional.empty(); + + public void authenticate() throws IOException, InterruptedException { + System.out.println("Username is " + credentials.getUsername()); + System.out.println("Password is " + credentials.getPassword()); + System.out.println("Key is " + credentials.getKey()); + + + HttpClient client = HttpClient.newHttpClient(); + HttpRequest request = HttpRequest.newBuilder() + .headers("Content-Type", "application/json", + "Authorization", createDirectLoginHeader()) + .uri(URI.create(OBP_BASE_URL + LOGIN_URL)) // TODO : URL creation improve + .POST(HttpRequest.BodyPublishers.ofString("")) + .build(); + + HttpResponse response = client.send(request, jsonBodyHandler); //TODO : Handle failures. + System.out.println(response.body().getToken()); + authToken = Optional.of(response.body()); + } + + public boolean isAuthenticated() { + return authToken.isPresent(); + } + + public Optional getAuthToken() { + return authToken; + } + + private String createDirectLoginHeader(){ + return "DirectLogin username=" + this.credentials.getUsername() + ",password="+ this.credentials.getPassword() + ",consumer_key="+ this.credentials.getKey(); + } + +} diff --git a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/AuthToken.java b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/AuthToken.java new file mode 100644 index 0000000..636bf9c --- /dev/null +++ b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/AuthToken.java @@ -0,0 +1,14 @@ +package fr.lengrand.dialogflowfunapi.openbankproject; + +public class AuthToken { + private String token; + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + +} diff --git a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/JSONBodyHandler.java b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/JSONBodyHandler.java new file mode 100644 index 0000000..35a67bb --- /dev/null +++ b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/JSONBodyHandler.java @@ -0,0 +1,38 @@ +package fr.lengrand.dialogflowfunapi.openbankproject; + +import javax.json.bind.Jsonb; +import javax.json.bind.JsonbBuilder; +import java.io.ByteArrayInputStream; +import java.net.http.HttpResponse; +import java.net.http.HttpResponse.BodySubscriber; +import java.net.http.HttpResponse.BodySubscribers; +import java.net.http.HttpResponse.ResponseInfo; +import java.util.function.Function; + +public class JSONBodyHandler implements HttpResponse.BodyHandler { + private final Jsonb jsonBinder; + private final Class type; + private HttpResponse.BodySubscriber byteArraySubscriber; + + public static JSONBodyHandler getHandler(final Class type){ + return new JSONBodyHandler<>(JsonbBuilder.create(), type); + } + + private JSONBodyHandler(Jsonb jsonBinder, Class type){ + this.jsonBinder = jsonBinder; + this.type = type; + this.byteArraySubscriber = BodySubscribers.ofByteArray(); + } + + @Override + public BodySubscriber apply(ResponseInfo responseInfo) { + return HttpResponse.BodySubscribers.mapping(byteArraySubscriber, byteArrayToJSON()); + } + + private Function byteArrayToJSON() { + return byteArray -> this.jsonBinder.fromJson(new ByteArrayInputStream(byteArray), this.type); + } + + +} + diff --git a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/OpenBankCredentials.java b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/OpenBankCredentials.java new file mode 100644 index 0000000..2590735 --- /dev/null +++ b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/OpenBankCredentials.java @@ -0,0 +1,31 @@ +package fr.lengrand.dialogflowfunapi.openbankproject; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@ComponentScan +@Configuration +public class OpenBankCredentials { + + @Value("${obp.username}") + private String username; + + @Value("${obp.password}") + private String password; + + @Value("${obp.key}") + private String key; + + public String getUsername() { + return username; + } + + public String getPassword() { + return password; + } + + public String getKey() { + return key; + } +} diff --git a/dialogflow-fun-api/src/main/resources/application.properties b/dialogflow-fun-api/src/main/resources/application.properties index 8b13789..98fdb68 100644 --- a/dialogflow-fun-api/src/main/resources/application.properties +++ b/dialogflow-fun-api/src/main/resources/application.properties @@ -1 +1,3 @@ - +obp.username=${OPENBANKPROJECT_USERNAME} +obp.password=${OPENBANKPROJECT_PASSWORD} +obp.key=${OPENBANKPROJECT_CONSUMERKEY} \ No newline at end of file From 3bc73c6db58faa390c538a6140cca34739a4f0c9 Mon Sep 17 00:00:00 2001 From: Julien Lengrand-Lambert Date: Mon, 21 Oct 2019 16:29:46 +0200 Subject: [PATCH 6/6] Refactor Auth code to package --- .../lengrand/dialogflowfunapi/DialogflowFunApiApplication.java | 3 +-- .../dialogflowfunapi/openbankproject/{ => auth}/Auth.java | 3 +-- .../dialogflowfunapi/openbankproject/{ => auth}/AuthToken.java | 2 +- .../openbankproject/{ => auth}/JSONBodyHandler.java | 2 +- .../openbankproject/{ => auth}/OpenBankCredentials.java | 2 +- 5 files changed, 5 insertions(+), 7 deletions(-) rename dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/{ => auth}/Auth.java (94%) rename dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/{ => auth}/AuthToken.java (76%) rename dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/{ => auth}/JSONBodyHandler.java (95%) rename dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/{ => auth}/OpenBankCredentials.java (91%) diff --git a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/DialogflowFunApiApplication.java b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/DialogflowFunApiApplication.java index 9b772e4..f6f7c2e 100644 --- a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/DialogflowFunApiApplication.java +++ b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/DialogflowFunApiApplication.java @@ -1,8 +1,7 @@ package fr.lengrand.dialogflowfunapi; -import fr.lengrand.dialogflowfunapi.openbankproject.Auth; +import fr.lengrand.dialogflowfunapi.openbankproject.auth.Auth; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; diff --git a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/Auth.java b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/auth/Auth.java similarity index 94% rename from dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/Auth.java rename to dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/auth/Auth.java index 3f49511..7dcb4d6 100644 --- a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/Auth.java +++ b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/auth/Auth.java @@ -1,7 +1,6 @@ -package fr.lengrand.dialogflowfunapi.openbankproject; +package fr.lengrand.dialogflowfunapi.openbankproject.auth; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; diff --git a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/AuthToken.java b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/auth/AuthToken.java similarity index 76% rename from dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/AuthToken.java rename to dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/auth/AuthToken.java index 636bf9c..e658684 100644 --- a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/AuthToken.java +++ b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/auth/AuthToken.java @@ -1,4 +1,4 @@ -package fr.lengrand.dialogflowfunapi.openbankproject; +package fr.lengrand.dialogflowfunapi.openbankproject.auth; public class AuthToken { private String token; diff --git a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/JSONBodyHandler.java b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/auth/JSONBodyHandler.java similarity index 95% rename from dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/JSONBodyHandler.java rename to dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/auth/JSONBodyHandler.java index 35a67bb..379c2db 100644 --- a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/JSONBodyHandler.java +++ b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/auth/JSONBodyHandler.java @@ -1,4 +1,4 @@ -package fr.lengrand.dialogflowfunapi.openbankproject; +package fr.lengrand.dialogflowfunapi.openbankproject.auth; import javax.json.bind.Jsonb; import javax.json.bind.JsonbBuilder; diff --git a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/OpenBankCredentials.java b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/auth/OpenBankCredentials.java similarity index 91% rename from dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/OpenBankCredentials.java rename to dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/auth/OpenBankCredentials.java index 2590735..af89351 100644 --- a/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/OpenBankCredentials.java +++ b/dialogflow-fun-api/src/main/java/fr/lengrand/dialogflowfunapi/openbankproject/auth/OpenBankCredentials.java @@ -1,4 +1,4 @@ -package fr.lengrand.dialogflowfunapi.openbankproject; +package fr.lengrand.dialogflowfunapi.openbankproject.auth; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.ComponentScan;