Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into larry-matching
Browse files Browse the repository at this point in the history
  • Loading branch information
Tony (Juntao) Hu committed Dec 6, 2021
2 parents 8f3fdae + 2ead860 commit 65e4701
Show file tree
Hide file tree
Showing 60 changed files with 1,738 additions and 1,169 deletions.
20 changes: 20 additions & 0 deletions app/src/main/java/com/amigo/config/ErrorStringConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.amigo.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.ConstructorBinding;

/**
* A POJO class that holds String constants for error messages.
*/
@ConfigurationProperties(prefix = "error")
@ConstructorBinding // specifies that config values should be injected through the constructor
// such that the object can be immutable
public class ErrorStringConfig {
public final String PSWD_NOT_MATCH;
public final String COURSE_INFO_FORMAT;

public ErrorStringConfig(String pswdNotMatch, String courseInfoFormat) {
this.PSWD_NOT_MATCH = pswdNotMatch;
this.COURSE_INFO_FORMAT = courseInfoFormat;
}
}
4 changes: 3 additions & 1 deletion app/src/main/java/com/amigo/control/AmigoApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;

@SpringBootApplication(scanBasePackages = {"com.amigo.control", "com.amigo.course"})
@EntityScan(basePackages = {"com.amigo.course"})
@EnableJpaRepositories(basePackages = {"com.amigo.course"})
@ComponentScan("com.amigo") // enabling component scan for same-level packages (by indicating closest common
// parent package)
@ConfigurationPropertiesScan("com.amigo.config")
public class AmigoApplication {

public static void main(String[] args) {
Expand Down
162 changes: 0 additions & 162 deletions app/src/main/java/com/amigo/control/ControlSystem.java

This file was deleted.

62 changes: 62 additions & 0 deletions app/src/main/java/com/amigo/control/DashboardController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package com.amigo.control;

import java.util.List;

import com.amigo.match.DemoMatching;
import com.amigo.match.Match;
import com.amigo.present.UserPresenter;
import com.amigo.user.User;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class DashboardController {

@Autowired
UserPresenter presenter;

@GetMapping("/dashboard")
public ModelAndView showDashboard(@ModelAttribute User user) {
if (!user.isValid() && !presenter.hasUser()) {
return new ModelAndView("error-page");
}
if (user.isValid()) {
presenter.setUser(user);
}
ModelAndView mav = new ModelAndView("dashboard");
presenter.populate(mav.getModel());
return mav;
}

@GetMapping("/matching-screen")
public ModelAndView showMatchingScreen() {
ModelAndView mav = new ModelAndView("matching-screen");
User currentUser = presenter.getUser();
var allMatches = DemoMatching.doMatching(currentUser);
List<Match> matchList = allMatches.get(currentUser.getId());
currentUser.setCurrentMatches(matchList);

int counter = 0;
for (var each : currentUser.getCurrentMatches()) {
UserPresenter p = new UserPresenter();
if (each.getUser1() == currentUser){
p.setUser(each.getUser2());
}
else {
p.setUser(each.getUser1());
}
p.setSuffix(String.valueOf(++counter));
p.populate(mav.getModel());
}
return mav;
}

@GetMapping("/*")
public String showError() {
return "error-page";
}
}
7 changes: 7 additions & 0 deletions app/src/main/java/com/amigo/control/DatabaseController.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,13 @@ public class DatabaseController {
return "Saved";
}

@GetMapping("/testaddcourse")
public @ResponseBody String testAddCourse() {
Course course = new Course("CSC101", "LEC0101", "TUT0101");
courseRepository.save(course);
return "Saved";
}

/**
* Returns all the courses saved in the database
*/
Expand Down
6 changes: 3 additions & 3 deletions app/src/main/java/com/amigo/control/LoginController.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.amigo.control;

import com.amigo.form.Credentials;
import com.amigo.form.LoginForm;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
Expand All @@ -21,7 +21,7 @@ public class LoginController {

@GetMapping("/login")
public String showLoginPage(Model model) {
model.addAttribute("credentials", new Credentials());
model.addAttribute("credentials", new LoginForm());
return "log-in";
}

Expand All @@ -30,7 +30,7 @@ public String showLoginPage(Model model) {
*/

@PostMapping("/login-success")
public String getCredentials(Model model, @ModelAttribute("credentials") Credentials cred) {
public String getCredentials(Model model, @ModelAttribute("credentials") LoginForm cred) {
model.addAttribute("name", cred.getUsername());
return "log-in-success";
}
Expand Down
Loading

0 comments on commit 65e4701

Please sign in to comment.