Commit a88ae0db by Bright Sukumpanumet

Merge branch 'master' of mit.cs.uchicago.edu:haohsiang/topics-auction

# Conflicts:
#	target/h2db.mv.db
parents 31dd5bcd 200232b8
Showing with 435 additions and 277 deletions
...@@ -36,7 +36,7 @@ public class Application { ...@@ -36,7 +36,7 @@ public class Application {
} }
// @Bean // @Bean
// public CommandLineRunner initData(UserDB userDB) { // CommandLineRunner initData(UserDB userDB) {
// return args -> { // return args -> {
// userDB.save(new User("111", "wawa", "rex", "wawa", "rex@gmail.com", true)); // userDB.save(new User("111", "wawa", "rex", "wawa", "rex@gmail.com", true));
// userDB.save(new User("222", "wawa", "haoh", "wawa", "hao@gmail.com", true)); // userDB.save(new User("222", "wawa", "haoh", "wawa", "hao@gmail.com", true));
......
...@@ -34,7 +34,7 @@ public class AdminController { ...@@ -34,7 +34,7 @@ public class AdminController {
@DeleteMapping("/remove") @DeleteMapping("/remove")
public void removeUser(@RequestBody User user) //or change to item ID public void removeUser(@RequestBody User user) //or change to item ID
{ {
adminService.deleteUser(user.getUserId()); adminService.deleteUser(user.getUserId().toString());
} }
@PutMapping("/update") @PutMapping("/update")
......
//package edu.uchicago.mpcs.topics.controller; package edu.uchicago.mpcs.topics.controller;
//
//import edu.uchicago.mpcs.topics.exceptions.UserAlreadyExistException; import edu.uchicago.mpcs.topics.exceptions.UserAlreadyExistException;
//import edu.uchicago.mpcs.topics.exceptions.UserNotFoundException; import edu.uchicago.mpcs.topics.exceptions.UserNotFoundException;
//
//
//import edu.uchicago.mpcs.topics.exceptions.UserAlreadyExistException; import edu.uchicago.mpcs.topics.exceptions.UserAlreadyExistException;
//import edu.uchicago.mpcs.topics.exceptions.UserNotFoundException; import edu.uchicago.mpcs.topics.exceptions.UserNotFoundException;
//import edu.uchicago.mpcs.topics.service.UserService; import edu.uchicago.mpcs.topics.service.UserService;
//import edu.uchicago.mpcs.topics.user.User; import edu.uchicago.mpcs.topics.db.UserRepository;
//import org.springframework.beans.factory.annotation.Autowired; import edu.uchicago.mpcs.topics.user.User;
//import org.springframework.web.bind.annotation.*; import org.springframework.http.ResponseEntity;
// import org.springframework.http.HttpHeaders;
// import org.springframework.http.HttpStatus;
///** import org.springframework.web.util.UriComponentsBuilder;
// * Created by Rex on 2018-11-19 import org.springframework.web.bind.annotation.RequestBody;
// */ import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.web.bind.annotation.*;
//@RestController import static org.springframework.web.bind.annotation.RequestMethod.GET;
//@RequestMapping("/user") import static org.springframework.web.bind.annotation.RequestMethod.POST;
//public class UserController {
//
// @Autowired /**
// private UserService userService; * Created by Rex on 2018-11-19
// */
// /**
// * Register new User. @RestController
// */ @RequestMapping("/user")
// @PostMapping("/add") public class UserController {
// public void register(@RequestBody User user) throws UserAlreadyExistException{
// userService.register(user); @Autowired
// } private UserService userService;
// private UserRepository userRepository;
// /**
// * User Login. /**
// */ * Register new User.
// @PostMapping("/add") */
// public void login(@RequestBody User user) throws UserNotFoundException { @RequestMapping(method = POST, value = "/register")
// userService.login(user); public ResponseEntity<?> addUser(@RequestBody User user, UriComponentsBuilder ucBuilder) {
// }
// User existUser = this.userService.findByUserId(user.getUserId()) ;
//} if (existUser != null) {
throw new UserAlreadyExistException(user.getUserId(), "Username already exists");
}
User new_user = this.userService.register(user);
HttpHeaders headers = new HttpHeaders();
headers.setLocation(ucBuilder.path("/api/user/{userId}").buildAndExpand(user.getUserId()).toUri());
return new ResponseEntity<User>(user, HttpStatus.CREATED);
}
/**
* User Login.
*/
@PostMapping("/login")
public void login(@RequestBody User user) {
userService.login(user.getEmail(), user.getPassword());
}
/**
* Get user.
*/
@GetMapping("/{userId}")
public User getUserById(@PathVariable String userId)
{
return userRepository.findById(userId).orElse(null);
}
}
//package edu.uchicago.mpcs.topics.db.Impl;
//
//import edu.uchicago.mpcs.topics.db.UserRepository;
//import edu.uchicago.mpcs.topics.query.UserQuery;
//import edu.uchicago.mpcs.topics.user.User;
//import org.hibernate.query.Query;
//import org.hibernate.SessionFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Repository;
//
//import java.io.Serializable;
//import java.math.BigInteger;
//import java.util.Optional;
//
///**
// * Created by Rex on 2018-11-20
// */
//
//@Repository
//public class UserRepositoryImpl implements UserRepository {
//
// @Autowired
// private SessionFactory sessionFactory;
//
// @Override
// public User register(User user) {
// Serializable userId = sessionFactory.getCurrentSession().save(user);
// return user;
// }
//
// @Override
// public User login(String email, String password) {
// Query query = sessionFactory.getCurrentSession().createQuery(UserQuery.IS_AUTHENTICATED);
// query.setParameter("email", email);
// query.setParameter("password", password);
// User userFetched = (User) query.uniqueResult();
// return userFetched;
// }
//
// @Override
// public boolean isUserAlreadyExist(String email) {
// Query query = sessionFactory.getCurrentSession().createQuery(UserQuery.IS_USER_ID_EXIST);
// query.setParameter("email", email);
// BigInteger count = (BigInteger) query.uniqueResult();
// if (count.intValue() > 0) {
// return true;
// }
// return false;
// }
//
// @Override
// public Optional<User> getUserByEmail(String email) {
// Query query = sessionFactory.getCurrentSession().createQuery(UserQuery.USER_BY_EMAIL);
// query.setParameter("email", email);
// User user = (User) query.uniqueResult();
// return Optional.ofNullable(user);
// }
//
// @Override
// public <S extends User> S save(S s) {
// return null;
// }
//
// @Override
// public <S extends User> Iterable<S> saveAll(Iterable<S> iterable) {
// return null;
// }
//
// @Override
// public Optional<User> findById(String s) {
// return Optional.empty();
// }
//
// @Override
// public boolean existsById(String s) {
// return false;
// }
//
// @Override
// public Iterable<User> findAll() {
// return null;
// }
//
// @Override
// public Iterable<User> findAllById(Iterable<String> iterable) {
// return null;
// }
//
// @Override
// public long count() {
// return 0;
// }
//
// @Override
// public void deleteById(String s) {
//
// }
//
// @Override
// public void delete(User user) {
//
// }
//
// @Override
// public void deleteAll(Iterable<? extends User> iterable) {
//
// }
//
// @Override
// public void deleteAll() {
//
// }
//}
\ No newline at end of file
...@@ -9,6 +9,7 @@ import java.util.List; ...@@ -9,6 +9,7 @@ import java.util.List;
@RepositoryRestResource @RepositoryRestResource
public interface UserDB extends CrudRepository<User, String> { public interface UserDB extends CrudRepository<User, String> {
List<User> findByEmail(@Param("email") String email); User findByEmail(@Param("email") String email);
List<User> findByUserId(@Param("userid") String userId); User findByUserId(@Param("user_id") String userId);
} }
\ No newline at end of file
//package edu.uchicago.mpcs.topics.db; package edu.uchicago.mpcs.topics.db;
//import edu.uchicago.mpcs.topics.user.User; import edu.uchicago.mpcs.topics.user.User;
//
//import org.springframework.data.repository.CrudRepository; import org.springframework.data.jpa.repository.JpaRepository;
// import java.util.Optional;
//import java.util.Optional;
// /**
///** * Modified by Rex on 2018-11-19
// * Modified by Rex on 2018-11-19 */
// */
// public interface UserRepository extends JpaRepository<User, String>{
//public interface UserRepository extends CrudRepository<User, String>{ User register(User user);
// User register(User user); User findByUserId( String userId );
// User login(String email, String password);
// User login(String email, String password); boolean isUserAlreadyExist(String userId);
//
// boolean isUserAlreadyExist(String userId); Optional<User> getUserByEmail(String email);
// }
// Optional<User> getUserByEmail(String email);
//}
package edu.uchicago.mpcs.topics.db;
import edu.uchicago.mpcs.topics.db.UserRepository;
import edu.uchicago.mpcs.topics.exceptions.UserAlreadyExistException;
import edu.uchicago.mpcs.topics.exceptions.UserNotFoundException;
import edu.uchicago.mpcs.topics.service.UserService;
import edu.uchicago.mpcs.topics.user.User;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
import java.util.Optional;
/**
* Created by Rex on 2018-11-20
*/
@Service
public class UserRepositoryImpl implements UserRepository {
@Autowired
private UserRepository userRepository;
/**
* Register user.
*
* @param user
* @throws UserAlreadyExistException
*/
@Override
public User register(User user) throws UserAlreadyExistException {
String firstName = user.getFirstName();
String lastName = user.getLastName();
String email = user.getEmail();
String password = user.getPassword();
boolean isAdmin = user.getIsAdmin();
if (!userRepository.isUserAlreadyExist(email)) {
user.setFirstName(firstName);
user.setLastName(lastName);
user.setPassword(password);
user.setEmail(email);
user.setIsAdmin(isAdmin);
this.userRepository.register(user);
this.userRepository.save(user);
return user;
} else {
throw new UserAlreadyExistException(user.getUserId(), "Username already exists");
}
}
/**
* Find user by user id.
*
* @param userId
*/
@Override
public User findByUserId(String userId) {
User u = userRepository.findByUserId(userId);
return u;
}
/**
* User login.
*
* @param email, password
* @return user
*/
@Override
public User login(String email, String password) {
User user = userRepository.login(email, password);
if (user == null) {
return null;
}
return user;
}
@Override
public boolean isUserAlreadyExist(String userId) {
return false;
}
@Override
public Optional<User> getUserByEmail(String email) {
return Optional.empty();
}
@Override
public List<User> findAll() {
return null;
}
@Override
public List<User> findAll(Sort sort) {
return null;
}
@Override
public Page<User> findAll(Pageable pageable) {
return null;
}
@Override
public List<User> findAllById(Iterable<String> iterable) {
return null;
}
@Override
public long count() {
return 0;
}
@Override
public void deleteById(String s) {
}
@Override
public void delete(User user) {
}
@Override
public void deleteAll(Iterable<? extends User> iterable) {
}
@Override
public void deleteAll() {
}
@Override
public <S extends User> S save(S s) {
return null;
}
@Override
public <S extends User> List<S> saveAll(Iterable<S> iterable) {
return null;
}
@Override
public Optional<User> findById(String s) {
return Optional.empty();
}
@Override
public boolean existsById(String s) {
return false;
}
@Override
public void flush() {
}
@Override
public <S extends User> S saveAndFlush(S s) {
return null;
}
@Override
public void deleteInBatch(Iterable<User> iterable) {
}
@Override
public void deleteAllInBatch() {
}
@Override
public User getOne(String s) {
return null;
}
@Override
public <S extends User> Optional<S> findOne(Example<S> example) {
return Optional.empty();
}
@Override
public <S extends User> List<S> findAll(Example<S> example) {
return null;
}
@Override
public <S extends User> List<S> findAll(Example<S> example, Sort sort) {
return null;
}
@Override
public <S extends User> Page<S> findAll(Example<S> example, Pageable pageable) {
return null;
}
@Override
public <S extends User> long count(Example<S> example) {
return 0;
}
@Override
public <S extends User> boolean exists(Example<S> example) {
return false;
}
}
...@@ -6,26 +6,25 @@ package edu.uchicago.mpcs.topics.exceptions; ...@@ -6,26 +6,25 @@ package edu.uchicago.mpcs.topics.exceptions;
* Referenced from https://github.com/lovababu/auction-site/tree/master/monolith/src/main/java/com/sapient/auction/user/exception * Referenced from https://github.com/lovababu/auction-site/tree/master/monolith/src/main/java/com/sapient/auction/user/exception
*/ */
public class UserAlreadyExistException extends Exception { public class UserAlreadyExistException extends RuntimeException {
private int statusCode; private static final String serialVersionUID = "1791564636123821405L";
private String message; private String resourceId;
// private String message;
public UserAlreadyExistException() { // public UserAlreadyExistException() {
super(); // super();
} // }
public UserAlreadyExistException(String message) { public UserAlreadyExistException(String resourceId, String message) {
super(message); super(message);
this.message = message; this.setResourceId(resourceId);
} }
public UserAlreadyExistException(int statusCode, String message) { public String getResourceId() {
super(); return resourceId;
this.statusCode = statusCode;
this.message = message;
} }
public UserAlreadyExistException(String message, Throwable t) { public void setResourceId(String resourceId) {
super(message, t); this.resourceId = resourceId;
} }
} }
...@@ -23,6 +23,18 @@ public class AdminService { ...@@ -23,6 +23,18 @@ public class AdminService {
return users; return users;
} }
public User save(final User entity) {
return userDB.save(entity);
}
public User findByUserId(final String userId) {
return userDB.findByUserId(userId);
}
public User findByEmail(final String email) {
return userDB.findByEmail(email);
}
public void addUser(User user) public void addUser(User user)
{ {
userDB.save(user); userDB.save(user);
......
//package edu.uchicago.mpcs.topics.service; package edu.uchicago.mpcs.topics.service;
//
//import edu.uchicago.mpcs.topics.exceptions.UserAlreadyExistException; import edu.uchicago.mpcs.topics.exceptions.UserAlreadyExistException;
//import edu.uchicago.mpcs.topics.exceptions.UserNotFoundException; import edu.uchicago.mpcs.topics.exceptions.UserNotFoundException;
//import edu.uchicago.mpcs.topics.user.User; import edu.uchicago.mpcs.topics.user.User;
//
//
///** /**
// * Created by Rex on 2018-11-19 * Created by Rex on 2018-11-19
// */ */
//
//
//public interface UserService { public interface UserService {
// User findByUserId(String userId);
// void register(User user) throws UserAlreadyExistException;
// User register(User user);
// User login(User user) throws UserNotFoundException;
// boolean login(String email, String password);
//} }
\ No newline at end of file \ No newline at end of file
//package edu.uchicago.mpcs.topics.service.impl; package edu.uchicago.mpcs.topics.service.impl;
//
//import edu.uchicago.mpcs.topics.db.UserRepository;
//import edu.uchicago.mpcs.topics.exceptions.UserAlreadyExistException;
//import edu.uchicago.mpcs.topics.exceptions.UserNotFoundException;
//import edu.uchicago.mpcs.topics.service.UserService;
//import edu.uchicago.mpcs.topics.user.User;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//import lombok.extern.slf4j.Slf4j;
//
// import edu.uchicago.mpcs.topics.db.UserRepository;
///** import edu.uchicago.mpcs.topics.exceptions.UserAlreadyExistException;
// * Created by Rex on 2018-11-20 import edu.uchicago.mpcs.topics.exceptions.UserNotFoundException;
// */ import edu.uchicago.mpcs.topics.service.UserService;
// import edu.uchicago.mpcs.topics.user.User;
//@Service import org.springframework.transaction.annotation.Propagation;
//@Slf4j import org.springframework.transaction.annotation.Transactional;
//public class UserServiceImpl implements UserService { import org.springframework.beans.factory.annotation.Autowired;
// import org.springframework.stereotype.Service;
// @Autowired import lombok.extern.slf4j.Slf4j;
// private UserRepository userRepository;
//
// /**
// * Register user.
// * /**
// * @param user * Created by Rex on 2018-11-20
// * @throws UserAlreadyExistException */
// */
// @Override @Service
// public void register(User user) throws UserAlreadyExistException { public class UserServiceImpl implements UserService {
// String email = user.getEmail();
// String password = user.getPassword(); @Autowired
// boolean isAdmin = user.getIsAdmin(); private UserRepository userRepository;
//
// if (!userRepository.isUserAlreadyExist(email)) { /**
// user.setPassword(password); * Register user.
// user.setEmail(email); *
// user.setIsAdmin(isAdmin); * @param user
// userRepository.register(user); * @throws UserAlreadyExistException
// } else { */
// throw new UserAlreadyExistException("user id being used, please try with other."); @Override
// } public User register(User user) throws UserAlreadyExistException {
// } String firstName = user.getFirstName();
// /** String lastName = user.getLastName();
// * User login. String email = user.getEmail();
// * String password = user.getPassword();
// * @param user boolean isAdmin = user.getIsAdmin();
// * @return
// * @throws UserNotFoundException if (!userRepository.isUserAlreadyExist(email)) {
// */ user.setFirstName(firstName);
// @Override user.setLastName(lastName);
// public User login(User user) throws UserNotFoundException { user.setPassword(password);
// String email = user.getEmail(); user.setEmail(email);
// String password = user.getPassword(); user.setIsAdmin(isAdmin);
// this.userRepository.register(user);
// user = userRepository.login(email, password); this.userRepository.save(user);
// if (user == null) { return user;
// throw new UserNotFoundException(String.format("User not found %s", email)); } else {
// } throw new UserAlreadyExistException(user.getUserId(), "Username already exists");
// return user; }
// } }
//}
/**
* Find user by user id.
*
* @param userId
* @throws UserAlreadyExistException
*/
@Override
public User findByUserId(String userId) {
User u = userRepository.findByUserId(userId);
return u;
}
/**
* User login.
*
* @param email, password
* @return
*/
@Override
public boolean login(String email, String password) {
User user = userRepository.login(email, password);
if (user == null) {
return false;
}
return true;
}
}
No preview for this file type
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment