Skip to content
Snippets Groups Projects
Commit b71bfe28 authored by Bauer Lucca's avatar Bauer Lucca
Browse files

16.01.2024 - Start User Implementation #9

parent 763fee43
No related branches found
No related tags found
1 merge request!7Dev in Main Merge
Showing
with 223 additions and 42 deletions
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
LinkedList<Integer>
}
}
......@@ -22,32 +22,10 @@ public class SthBackendApplication {
@Autowired
ITournamentRepository tournamentRepository;
@Autowired
IPlayerRepository playerRepository;
@Autowired
IMatchRepository matchRepository;
@Autowired
ITeamRepository teamRepository;
public static void main(String[] args) {
SpringApplication.run(SthBackendApplication.class, args);
}
@Bean
public CommandLineRunner demo() {
return args -> {
// Create SimpleObject instances
Player player = new Player( UUID.randomUUID(), "Name" );
// Insert objects into MongoDB using insert
playerRepository.save( player );
// Retrieve and print all objects from MongoDB
playerRepository.findAll().forEach(System.out::println);
};
}
}
package hdm.mi.sthbackend.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
}
......@@ -11,6 +11,7 @@ import hdm.mi.sthbackend.types.TeamName;
import hdm.mi.sthbackend.types.TournamentName;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import hdm.mi.sthbackend.dto.TournamentDTO.CreateTournamentDTO;
import java.util.Arrays;
import java.util.List;
......@@ -108,8 +109,8 @@ public class TournamentController {
@PostMapping("/tournaments")
public Tournament createTournament(@RequestBody CreateTournamentDTO tournament) {
String tournamentName = tournament.getTournamentName();
List<String> teamNames = tournament.getTeamNames();
String tournamentName = tournament.tournamentName();
List<String> teamNames = tournament.teamNames();
return service.createTournament( new Tournament(tournamentName, teamNames) );
}
......
package hdm.mi.sthbackend.controller;
import hdm.mi.sthbackend.service.UserService;
import hdm.mi.sthbackend.types.UserType.UserSignUpType;
import lombok.AllArgsConstructor;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController("/api/v1/user")
@AllArgsConstructor
public class UserController {
private final Logger log = LogManager.getLogger(this.getClass().getSimpleName());
private final UserService userService;
@PostMapping("/signup")
public void signUpUser(@RequestBody UserSignUpType userSignUpType) {
log.debug("Signing up user: " + userSignUpType);
userService.signUpUser(userSignUpType);
}
@PostMapping("/signin")
public void signInUser() {
}
public void confirmUser() {
}
public void deleteUser() {
}
}
package hdm.mi.sthbackend.dto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
@AllArgsConstructor
public class CreateTournamentDTO {
private String tournamentName;
private List<String> teamNames;
}
......@@ -20,4 +20,7 @@ public class TournamentDTO {
private String tournamentName;
private Map<UUID, MatchDTO> matches;
private Map<UUID, TeamDTO> teams;
public record CreateTournamentDTO( String tournamentName, List<String> teamNames) {}
}
package hdm.mi.sthbackend.model;
public class ConfirmationToken {
}
package hdm.mi.sthbackend.model;
import lombok.AllArgsConstructor;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.data.mongodb.core.mapping.Document;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.Map;
import java.util.UUID;
@Document("User")
@AllArgsConstructor
public class User {
private final Logger log = LogManager.getLogger("User");
private UUID userId;
private String name;
private String username;
private String email;
private String password;
private boolean valid;
private LocalDateTime creationDate;
private LocalDateTime lastLoginDate;
private String sessionToken;
private Map<UUID, Tournament> tournaments;
}
package hdm.mi.sthbackend.model;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class UserProfile {
private String firstName;
private String lastName;
private String profilePicture;
}
package hdm.mi.sthbackend.repository;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class IConfirmationTokenRepository {
}
package hdm.mi.sthbackend.repository;
import hdm.mi.sthbackend.model.User;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
import java.util.UUID;
@Repository
public interface IUserRepository extends MongoRepository<User, UUID> {
}
package hdm.mi.sthbackend.service;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.stereotype.Service;
@Service
public class ConfirmationTokenService {
}
package hdm.mi.sthbackend.service;
import lombok.AllArgsConstructor;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.stereotype.Service;
@AllArgsConstructor
@Service
public class EmailService implements IEmailService{
private final Logger log = LogManager.getLogger(this.getClass()
.getSimpleName());
public void send(String to, String subject, String body) {
log.debug("Sending email to: " + to);
log.debug("Subject: " + subject);
log.debug("Body: " + body);
}
}
package hdm.mi.sthbackend.service;
import org.springframework.context.annotation.Bean;
public interface IEmailService {
void send(String to, String subject, String body);
}
package hdm.mi.sthbackend.service;
import hdm.mi.sthbackend.model.User;
import hdm.mi.sthbackend.repository.IUserRepository;
import hdm.mi.sthbackend.types.UserType.UserSignUpType;
import lombok.AllArgsConstructor;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
@Service
@AllArgsConstructor
public class UserService {
private final Logger log = LogManager.getLogger(this.getClass()
.getSimpleName());
private final IUserRepository userRepository;
private final PasswordEncoder passwordEncoder;
private final IEmailService emailService;
private final ConfirmationTokenService confirmationTokenService;
public void signUpUser(UserSignUpType user){
}
public void signInUser(User user){
}
public void confirmToken(String token){
}
public void deleteUser(User user){
}
public void verifyUser(User user){
}
}
package hdm.mi.sthbackend.types;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public record UserType(String email) {
public record UserSignUpType(String email, String password){}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment