From a06a558d7b65ce9338eae742e051bdd73857ad00 Mon Sep 17 00:00:00 2001 From: Gnarwhal Date: Wed, 27 Jan 2021 03:27:04 -0500 Subject: [PATCH] Initial backend --- backend/.gitignore | 21 +++++ backend/build.gradle | 24 ++++++ .../main/java/achievements/Application.java | 19 +++++ .../achievements/controllers/Controller.java | 37 +++++++++ .../java/achievements/data/Achievements.java | 75 ++++++++++++++++++ .../java/achievements/data/InternalError.java | 21 +++++ .../services/DbConnectionService.java | 57 +++++++++++++ .../java/achievements/services/DbService.java | 47 +++++++++++ .../src/main/resources/application.properties | 2 + front_end/res/dummy_game.png~ | Bin 74645 -> 0 bytes {front_end => frontend}/index.html | 0 .../res/dummy_achievement.png | Bin {front_end => frontend}/res/dummy_game.png | Bin {front_end => frontend}/res/psn.png | Bin {front_end => frontend}/res/steam.png | Bin {front_end => frontend}/res/temp_pfp.png | Bin {front_end => frontend}/res/xbox.png | Bin {front_end => frontend}/scripts/index.js | 0 {front_end => frontend}/styles/index.css | 0 19 files changed, 303 insertions(+) create mode 100644 backend/.gitignore create mode 100644 backend/build.gradle create mode 100644 backend/src/main/java/achievements/Application.java create mode 100644 backend/src/main/java/achievements/controllers/Controller.java create mode 100644 backend/src/main/java/achievements/data/Achievements.java create mode 100644 backend/src/main/java/achievements/data/InternalError.java create mode 100644 backend/src/main/java/achievements/services/DbConnectionService.java create mode 100644 backend/src/main/java/achievements/services/DbService.java create mode 100644 backend/src/main/resources/application.properties delete mode 100644 front_end/res/dummy_game.png~ rename {front_end => frontend}/index.html (100%) rename {front_end => frontend}/res/dummy_achievement.png (100%) rename {front_end => frontend}/res/dummy_game.png (100%) rename {front_end => frontend}/res/psn.png (100%) rename {front_end => frontend}/res/steam.png (100%) rename {front_end => frontend}/res/temp_pfp.png (100%) rename {front_end => frontend}/res/xbox.png (100%) rename {front_end => frontend}/scripts/index.js (100%) rename {front_end => frontend}/styles/index.css (100%) diff --git a/backend/.gitignore b/backend/.gitignore new file mode 100644 index 0000000..ec60747 --- /dev/null +++ b/backend/.gitignore @@ -0,0 +1,21 @@ +# Intellij project files +.idea/ + +# Build files +build/ + +# Gradle files +.gradle/ +gradle/ + +gradlew +gradlew.bat + +# Eclipse project files +.classpath +.project + +.settings/ + +# Local property file +src/main/resources/application-db.properties diff --git a/backend/build.gradle b/backend/build.gradle new file mode 100644 index 0000000..d2148e1 --- /dev/null +++ b/backend/build.gradle @@ -0,0 +1,24 @@ +plugins { + id 'org.springframework.boot' version '2.3.3.RELEASE' + id 'io.spring.dependency-management' version '1.0.8.RELEASE' + id 'java' +} + +group = 'edu.rh.achievements' +version = '0.0.1-SNAPSHOT' + +sourceCompatibility = 1.15 +targetCompatibility = 1.15 + +repositories { + mavenCentral() +} + +dependencies { + compile 'org.springframework.boot:spring-boot-starter-web' + compile 'com.microsoft.sqlserver:mssql-jdbc' +} + +tasks.getByName('bootRun') { + systemProperty 'spring.profiles.active', 'db' +} diff --git a/backend/src/main/java/achievements/Application.java b/backend/src/main/java/achievements/Application.java new file mode 100644 index 0000000..44b5d01 --- /dev/null +++ b/backend/src/main/java/achievements/Application.java @@ -0,0 +1,19 @@ +package achievements; + +import achievements.services.DbConnectionService; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + var context = SpringApplication.run(Application.class, args); + + // Verify the database connection succeeded + var db = context.getBean(DbConnectionService.class); + if (db.getConnection() == null) { + SpringApplication.exit(context, () -> 0); + } + } +} \ No newline at end of file diff --git a/backend/src/main/java/achievements/controllers/Controller.java b/backend/src/main/java/achievements/controllers/Controller.java new file mode 100644 index 0000000..723001a --- /dev/null +++ b/backend/src/main/java/achievements/controllers/Controller.java @@ -0,0 +1,37 @@ +package achievements.controllers; + +import achievements.data.InternalError; +import achievements.services.DbService; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import static org.springframework.web.bind.annotation.RequestMethod.GET; + +@RestController +public class Controller { + + @Autowired + private DbService db; + + public Controller() {} + + @RequestMapping(value = "/achievements", method = GET, produces = "application/json") + public ResponseEntity index() { + try { + var achievements = db.getAchievements(); + var mapper = new ObjectMapper(); + if (achievements == null) { + return new ResponseEntity(mapper.writeValueAsString(new InternalError("Could not get achievements from database")), HttpStatus.INTERNAL_SERVER_ERROR); + } else { + return new ResponseEntity(mapper.writeValueAsString(achievements), HttpStatus.OK); + } + } catch (JsonProcessingException e) { + e.printStackTrace(); + return new ResponseEntity("{}", HttpStatus.INTERNAL_SERVER_ERROR); + } + } +} diff --git a/backend/src/main/java/achievements/data/Achievements.java b/backend/src/main/java/achievements/data/Achievements.java new file mode 100644 index 0000000..8ca8a96 --- /dev/null +++ b/backend/src/main/java/achievements/data/Achievements.java @@ -0,0 +1,75 @@ +package achievements.data; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.ArrayList; +import java.util.List; + +public class Achievements { + + public static class Achievement { + + @JsonProperty("GameID") + private int gameID; + @JsonProperty("Name") + private String name; + @JsonProperty("Description") + private String description; + @JsonProperty("Stages") + private int stages; + + public Achievement(int gameID, String name, String description, int stages) { + this.gameID = gameID; + this.name = name; + this.description = description; + this.stages = stages; + } + + public int getGameID() { + return gameID; + } + + public void setGameID(int gameID) { + this.gameID = gameID; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public int getStages() { + return stages; + } + + public void setStages(int stages) { + this.stages = stages; + } + } + + @JsonProperty("achievements") + List achievements; + + public Achievements() { + achievements = new ArrayList(); + } + + public List getAchievements() { + return achievements; + } + + public void setAchievements(List achievements) { + this.achievements = achievements; + } +} diff --git a/backend/src/main/java/achievements/data/InternalError.java b/backend/src/main/java/achievements/data/InternalError.java new file mode 100644 index 0000000..16486a5 --- /dev/null +++ b/backend/src/main/java/achievements/data/InternalError.java @@ -0,0 +1,21 @@ +package achievements.data; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class InternalError { + + @JsonProperty + private String message; + + public InternalError(String message) { + this.message = message; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/backend/src/main/java/achievements/services/DbConnectionService.java b/backend/src/main/java/achievements/services/DbConnectionService.java new file mode 100644 index 0000000..bb09ea4 --- /dev/null +++ b/backend/src/main/java/achievements/services/DbConnectionService.java @@ -0,0 +1,57 @@ +package achievements.services; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import com.microsoft.sqlserver.jdbc.SQLServerDataSource; + +@Component +public class DbConnectionService { + + private Connection connection; + + @Value("${database.server}") + private String serverName; + @Value("${database.name}") + private String databaseName; + @Value("${database.user.name}") + private String username; + @Value("${database.user.password}") + private String password; + + public DbConnectionService() {} + + @PostConstruct + public void connect() { + try { + var dataSource = new SQLServerDataSource(); + dataSource.setServerName (serverName ); + dataSource.setDatabaseName(databaseName); + dataSource.setUser (username ); + dataSource.setPassword (password ); + connection = dataSource.getConnection(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + public Connection getConnection() { + return this.connection; + } + + @PreDestroy + public void disconnect() { + try { + if (connection != null) { + connection.close(); + } + } catch (SQLException e) { + e.printStackTrace(); + } + } +} diff --git a/backend/src/main/java/achievements/services/DbService.java b/backend/src/main/java/achievements/services/DbService.java new file mode 100644 index 0000000..8043075 --- /dev/null +++ b/backend/src/main/java/achievements/services/DbService.java @@ -0,0 +1,47 @@ +package achievements.services; + +import achievements.data.Achievements; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.PostConstruct; +import java.sql.Connection; +import java.sql.SQLException; + +@Service +public class DbService { + + @Autowired + private DbConnectionService dbs; + private Connection db; + + @PostConstruct + private void init() { + db = dbs.getConnection(); + } + + public Achievements getAchievements() { + final String QUERY = "SELECT * FROM [dbo].[Achievement]"; + + try { + var statement = db.createStatement(); + var achievements = new Achievements(); + var queryResults = statement.executeQuery(QUERY); + + while (queryResults.next()) { + achievements.getAchievements().add(new Achievements.Achievement( + queryResults.getInt("GameID"), + queryResults.getString("Name"), + queryResults.getString("Description"), + queryResults.getInt("Stages") + )); + } + + statement.close(); + return achievements; + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + } +} diff --git a/backend/src/main/resources/application.properties b/backend/src/main/resources/application.properties new file mode 100644 index 0000000..004fec9 --- /dev/null +++ b/backend/src/main/resources/application.properties @@ -0,0 +1,2 @@ +server.port = 8000 +spring.application.name = Achievements Project diff --git a/front_end/res/dummy_game.png~ b/front_end/res/dummy_game.png~ deleted file mode 100644 index 518adadedeaf885bb0bb77c2113dad50d90c0487..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74645 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 shv@&&hyU|!{y+He|FF?HM_(97utExApigX diff --git a/front_end/index.html b/frontend/index.html similarity index 100% rename from front_end/index.html rename to frontend/index.html diff --git a/front_end/res/dummy_achievement.png b/frontend/res/dummy_achievement.png similarity index 100% rename from front_end/res/dummy_achievement.png rename to frontend/res/dummy_achievement.png diff --git a/front_end/res/dummy_game.png b/frontend/res/dummy_game.png similarity index 100% rename from front_end/res/dummy_game.png rename to frontend/res/dummy_game.png diff --git a/front_end/res/psn.png b/frontend/res/psn.png similarity index 100% rename from front_end/res/psn.png rename to frontend/res/psn.png diff --git a/front_end/res/steam.png b/frontend/res/steam.png similarity index 100% rename from front_end/res/steam.png rename to frontend/res/steam.png diff --git a/front_end/res/temp_pfp.png b/frontend/res/temp_pfp.png similarity index 100% rename from front_end/res/temp_pfp.png rename to frontend/res/temp_pfp.png diff --git a/front_end/res/xbox.png b/frontend/res/xbox.png similarity index 100% rename from front_end/res/xbox.png rename to frontend/res/xbox.png diff --git a/front_end/scripts/index.js b/frontend/scripts/index.js similarity index 100% rename from front_end/scripts/index.js rename to frontend/scripts/index.js diff --git a/front_end/styles/index.css b/frontend/styles/index.css similarity index 100% rename from front_end/styles/index.css rename to frontend/styles/index.css