Commit 6e241132 by Rex Zhou

admin services

parent 4eec918d
......@@ -36,7 +36,7 @@ public class Application {
}
// @Bean
// public CommandLineRunner initData(UserDB userDB) {
// CommandLineRunner initData(UserDB userDB) {
// return args -> {
// userDB.save(new User("111", "wawa", "rex", "wawa", "rex@gmail.com", true));
// userDB.save(new User("222", "wawa", "haoh", "wawa", "hao@gmail.com", true));
......
//package edu.uchicago.mpcs.topics.controller;
//
//import edu.uchicago.mpcs.topics.exceptions.UserAlreadyExistException;
//import edu.uchicago.mpcs.topics.exceptions.UserNotFoundException;
//
//
//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.web.bind.annotation.*;
//
//
///**
// * Created by Rex on 2018-11-19
// */
//
//@RestController
//@RequestMapping("/user")
//public class UserController {
//
// @Autowired
// private UserService userService;
//
// /**
// * Register new User.
// */
// @PostMapping("/add")
// public void register(@RequestBody User user) throws UserAlreadyExistException{
// userService.register(user);
// }
//
// /**
// * User Login.
// */
// @PostMapping("/add")
// public void login(@RequestBody User user) throws UserNotFoundException {
// userService.login(user);
// }
//
//}
package edu.uchicago.mpcs.topics.controller;
import edu.uchicago.mpcs.topics.exceptions.UserAlreadyExistException;
import edu.uchicago.mpcs.topics.exceptions.UserNotFoundException;
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.http.ResponseEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.web.util.UriComponentsBuilder;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
import static org.springframework.web.bind.annotation.RequestMethod.POST;
/**
* Created by Rex on 2018-11-19
*/
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* Register new User.
*/
@RequestMapping(method = POST, value = "/register")
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());
}
}
//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;
@RepositoryRestResource
public interface UserDB extends CrudRepository<User, String> {
List<User> findByEmail(@Param("email") String email);
List<User> findByUserId(@Param("userid") String userId);
User findByEmail(@Param("email") String email);
User findByUserId(@Param("user_id") String userId);
}
\ No newline at end of file
//package edu.uchicago.mpcs.topics.db;
//import edu.uchicago.mpcs.topics.user.User;
//
//import org.springframework.data.repository.CrudRepository;
//
//import java.util.Optional;
//
///**
// * Modified by Rex on 2018-11-19
// */
//
//public interface UserRepository extends CrudRepository<User, String>{
// User register(User user);
//
// User login(String email, String password);
//
// boolean isUserAlreadyExist(String userId);
//
// Optional<User> getUserByEmail(String email);
//}
package edu.uchicago.mpcs.topics.db;
import edu.uchicago.mpcs.topics.user.User;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
/**
* Modified by Rex on 2018-11-19
*/
public interface UserRepository extends JpaRepository<User, String>{
User register(User user);
User findByUserId( String userId );
User login(String email, String password);
boolean isUserAlreadyExist(String userId);
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
* @throws UserAlreadyExistException
*/
@Override
public User findByUserId(String userId) {
User u = userRepository.findByUserId(userId);
return u;
}
/**
* User login.
*
* @param email, password
* @return
*/
@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;
* Referenced from https://github.com/lovababu/auction-site/tree/master/monolith/src/main/java/com/sapient/auction/user/exception
*/
public class UserAlreadyExistException extends Exception {
private int statusCode;
private String message;
public class UserAlreadyExistException extends RuntimeException {
private static final String serialVersionUID = "1791564636123821405L";
private String resourceId;
// private String message;
public UserAlreadyExistException() {
super();
}
// public UserAlreadyExistException() {
// super();
// }
public UserAlreadyExistException(String message) {
public UserAlreadyExistException(String resourceId, String message) {
super(message);
this.message = message;
this.setResourceId(resourceId);
}
public UserAlreadyExistException(int statusCode, String message) {
super();
this.statusCode = statusCode;
this.message = message;
public String getResourceId() {
return resourceId;
}
public UserAlreadyExistException(String message, Throwable t) {
super(message, t);
public void setResourceId(String resourceId) {
this.resourceId = resourceId;
}
}
......@@ -23,6 +23,18 @@ public class AdminService {
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)
{
userDB.save(user);
......
//package edu.uchicago.mpcs.topics.service;
//
//import edu.uchicago.mpcs.topics.exceptions.UserAlreadyExistException;
//import edu.uchicago.mpcs.topics.exceptions.UserNotFoundException;
//import edu.uchicago.mpcs.topics.user.User;
//
//
///**
// * Created by Rex on 2018-11-19
// */
//
//
//public interface UserService {
//
// void register(User user) throws UserAlreadyExistException;
//
// User login(User user) throws UserNotFoundException;
//
//}
\ No newline at end of file
package edu.uchicago.mpcs.topics.service;
import edu.uchicago.mpcs.topics.exceptions.UserAlreadyExistException;
import edu.uchicago.mpcs.topics.exceptions.UserNotFoundException;
import edu.uchicago.mpcs.topics.user.User;
/**
* Created by Rex on 2018-11-19
*/
public interface UserService {
User findByUserId(String userId);
User register(User user);
boolean login(String email, String password);
}
\ No newline at end of file
//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;
//
package edu.uchicago.mpcs.topics.service.impl;
//
///**
// * Created by Rex on 2018-11-20
// */
//
//@Service
//@Slf4j
//public class UserServiceImpl implements UserService {
//
// @Autowired
// private UserRepository userRepository;
//
// /**
// * Register user.
// *
// * @param user
// * @throws UserAlreadyExistException
// */
// @Override
// public void register(User user) throws UserAlreadyExistException {
// String email = user.getEmail();
// String password = user.getPassword();
// boolean isAdmin = user.getIsAdmin();
//
// if (!userRepository.isUserAlreadyExist(email)) {
// user.setPassword(password);
// user.setEmail(email);
// user.setIsAdmin(isAdmin);
// userRepository.register(user);
// } else {
// throw new UserAlreadyExistException("user id being used, please try with other.");
// }
// }
// /**
// * User login.
// *
// * @param user
// * @return
// * @throws UserNotFoundException
// */
// @Override
// public User login(User user) throws UserNotFoundException {
// String email = user.getEmail();
// String password = user.getPassword();
//
// user = userRepository.login(email, password);
// if (user == null) {
// throw new UserNotFoundException(String.format("User not found %s", email));
// }
// return user;
// }
//}
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.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;
/**
* Created by Rex on 2018-11-20
*/
@Service
public class UserServiceImpl implements UserService {
@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
* @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