diff --git a/pom.xml b/pom.xml
index 3cdaead..f820618 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,10 +29,10 @@
org.springframework.boot
spring-boot-starter-oauth2-client
-
- org.springframework.boot
- spring-boot-starter-security
-
+
+
+
+
org.springframework.boot
spring-boot-starter-web
@@ -78,11 +78,11 @@
spring-restdocs-mockmvc
test
-
- org.springframework.security
- spring-security-test
- test
-
+
+
+
+
+
com.discord4j
discord4j-core
@@ -101,6 +101,36 @@
reactor-core
3.4.10
+
+
+ com.google.api-client
+ google-api-client
+ 1.32.1
+
+
+
+ com.google.oauth-client
+ google-oauth-client
+ 1.32.1
+
+
+
+ com.google.apis
+ google-api-services-calendar
+ v3-rev411-1.25.0
+
+
+
+ com.google.oauth-client
+ google-oauth-client-jetty
+ 1.32.1
+
+
+
+ com.google.api-client
+ google-api-client-jackson2
+ 1.20.0
+
diff --git a/src/main/java/com/se21/Calendar/GoogleCalendar.java b/src/main/java/com/se21/Calendar/GoogleCalendar.java
deleted file mode 100644
index 01191e4..0000000
--- a/src/main/java/com/se21/Calendar/GoogleCalendar.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.se21.Calendar;
-
-import org.json.simple.JSONObject;
-
-public class GoogleCalendar implements Calendar{
-
- String accessToken;
- String refreshToken;
- String authToken;
-
- @Override
- public JSONObject authenticate(JSONObject auth) {
-
- return null;
- }
-
- @Override
- public JSONObject retrieveEvents(JSONObject req) {
-
- return null;
- }
-
- @Override
- public Enums.calApiResponse updateEvents(JSONObject req) {
-
- return Enums.calApiResponse.Success;
- }
-
- @Override
- public Enums.calApiResponse addEvents() {
-
- return Enums.calApiResponse.Success;
- }
-
- @Override
- public Enums.calApiResponse deleteEvents() {
-
- return Enums.calApiResponse.Success;
- }
-
- @Override
- public Enums.calApiResponse createNewUnscheduledCalendar() {
-
- return Enums.calApiResponse.Success;
- }
-}
diff --git a/src/main/java/com/se21/Calendar/Calendar.java b/src/main/java/com/se21/Calendar/mainCalendar.java
similarity index 71%
rename from src/main/java/com/se21/Calendar/Calendar.java
rename to src/main/java/com/se21/Calendar/mainCalendar.java
index 30db26d..ca6a6c8 100644
--- a/src/main/java/com/se21/Calendar/Calendar.java
+++ b/src/main/java/com/se21/Calendar/mainCalendar.java
@@ -2,9 +2,11 @@
import org.json.simple.JSONObject;
-public interface Calendar {
+import java.security.GeneralSecurityException;
- JSONObject authenticate(JSONObject auth);
+public interface mainCalendar {
+
+ void authenticate() throws Exception;
JSONObject retrieveEvents(JSONObject req);
Enums.calApiResponse updateEvents(JSONObject req);
Enums.calApiResponse addEvents();
diff --git a/src/main/java/com/se21/calbot/CalBotApplication.java b/src/main/java/com/se21/calbot/CalBotApplication.java
index ddecaa8..d733a7a 100644
--- a/src/main/java/com/se21/calbot/CalBotApplication.java
+++ b/src/main/java/com/se21/calbot/CalBotApplication.java
@@ -1,12 +1,28 @@
package com.se21.calbot;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
+import org.springframework.context.annotation.ComponentScan;
-@SpringBootApplication
-public class CalBotApplication {
+@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
+@EntityScan
+@EnableAutoConfiguration
+public class CalBotApplication implements ApplicationRunner {
+
+ @Autowired
+ GoogleCalendar calendar;
public static void main(String[] args) { SpringApplication.run(CalBotApplication.class, args);
}
+ @Override
+ public void run(ApplicationArguments args) throws Exception {
+ calendar.authenticate();
+ }
}
diff --git a/src/main/java/com/se21/calbot/GoogleCalendar.java b/src/main/java/com/se21/calbot/GoogleCalendar.java
new file mode 100644
index 0000000..4171996
--- /dev/null
+++ b/src/main/java/com/se21/calbot/GoogleCalendar.java
@@ -0,0 +1,62 @@
+package com.se21.calbot;
+
+import com.google.api.client.auth.oauth2.Credential;
+import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
+import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
+import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
+import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeRequestUrl;
+import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
+import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
+import com.google.api.client.http.javanet.NetHttpTransport;
+import com.google.api.client.json.JsonFactory;
+import com.google.api.client.json.jackson2.JacksonFactory;
+import com.google.api.client.util.store.FileDataStoreFactory;
+import com.google.api.services.calendar.CalendarScopes;
+
+import java.io.FileNotFoundException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.Collections;
+import java.util.List;
+
+
+import org.springframework.stereotype.Component;
+
+@Component
+public class GoogleCalendar {
+
+ String accessToken;
+ String refreshToken;
+ String authToken;
+ private static final String CREDENTIALS_FILE_PATH = "/credentials.json";
+ private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
+ private static final String TOKENS_DIRECTORY_PATH = "tokens";
+ private static final List SCOPES = Collections.singletonList(CalendarScopes.CALENDAR);
+
+ public void authenticate() throws Exception {
+ // Load client secrets.
+
+ InputStream in = GoogleCalendar.class.getResourceAsStream(CREDENTIALS_FILE_PATH);
+ if (in == null) {
+ throw new FileNotFoundException("Resource not found: " + CREDENTIALS_FILE_PATH);
+ }
+ final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
+ GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));
+ // Build flow and trigger user authorization request.
+ GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
+ HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
+ .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH)))
+ .setAccessType("offline")
+ .build();
+ String url = flow.newAuthorizationUrl().setRedirectUri("http://localhost:8080/test").build();
+ LocalServerReceiver receiver = new LocalServerReceiver();
+// Credential auth = new AuthorizationCodeInstalledApp(flow, receiver).authorize("user");
+// System.out.println(auth.getAccessToken());
+// auth.`
+
+// GoogleAuthorizationCodeRequestUrl url = flow.newAuthorizationUrl();
+ System.out.println(url);
+// return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user");
+// return null;
+ }
+}
diff --git a/src/main/java/com/se21/calbot/controllers/TestController.java b/src/main/java/com/se21/calbot/controllers/TestController.java
new file mode 100644
index 0000000..7ead31c
--- /dev/null
+++ b/src/main/java/com/se21/calbot/controllers/TestController.java
@@ -0,0 +1,16 @@
+package com.se21.calbot.controllers;
+
+import com.se21.calbot.GoogleCalendar;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@CrossOrigin(origins = "*")
+public class TestController {
+
+ @RequestMapping(value = "/ping", method = RequestMethod.GET)
+ public String AuthenticateTest() throws Exception {
+ return "ping pong";
+ }
+}