Commit ec21643a by Rex Zhou

admin services

parent 801dac0a
Showing with 345 additions and 281 deletions
...@@ -33,25 +33,25 @@ public class Application { ...@@ -33,25 +33,25 @@ public class Application {
SpringApplication.run(Application.class, args); SpringApplication.run(Application.class, args);
} }
@Bean // @Bean
public CommandLineRunner run(ApplicationContext appContext) { // public CommandLineRunner run(ApplicationContext appContext) {
return args -> { // return args -> {
ItemController itemController = appContext.getBean(ItemController.class); // ItemController itemController = appContext.getBean(ItemController.class);
for (int i=0; i<5; i++) { // for (int i=0; i<5; i++) {
Item item = new Item( // Item item = new Item(
"title" + i, // "title" + i,
"desc" + i, // "desc" + i,
(long) i, // (long) i,
5.0, // 5.0,
500.0, // 500.0,
"https://www.sprint.com/content/dam/sprint/commerce/devices/apple/iphone_xr/red/devicenb_650x900.png/jcr:content/renditions/cq5dam.thumbnail.290.370.png", // "https://www.sprint.com/content/dam/sprint/commerce/devices/apple/iphone_xr/red/devicenb_650x900.png/jcr:content/renditions/cq5dam.thumbnail.290.370.png",
(long) i // (long) i
); // );
itemController.addItem(item); // itemController.addItem(item);
System.out.println(i); // System.out.println(i);
} // }
}; // };
} // }
@Bean @Bean
public WebMvcConfigurer corsConfigurer() { public WebMvcConfigurer corsConfigurer() {
......
...@@ -2,6 +2,8 @@ package edu.uchicago.mpcs.topics.controller; ...@@ -2,6 +2,8 @@ package edu.uchicago.mpcs.topics.controller;
import edu.uchicago.mpcs.topics.auction.ItemCategory; import edu.uchicago.mpcs.topics.auction.ItemCategory;
import edu.uchicago.mpcs.topics.auction.Listing; import edu.uchicago.mpcs.topics.auction.Listing;
import org.hibernate.query.Query;
import java.util.List; import java.util.List;
...@@ -9,3 +11,4 @@ public interface SearchController { ...@@ -9,3 +11,4 @@ public interface SearchController {
List<Listing> search(Query query); List<Listing> search(Query query);
List<Listing> search(ItemCategory itemCategory); List<Listing> search(ItemCategory itemCategory);
} }
package edu.uchicago.mpcs.topics.controller; //package edu.uchicago.mpcs.topics.controller;
//
<<<<<<< HEAD //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;
>>>>>>> master //import edu.uchicago.mpcs.topics.user.User;
import edu.uchicago.mpcs.topics.service.UserService; //import org.springframework.beans.factory.annotation.Autowired;
import edu.uchicago.mpcs.topics.user.User; //import org.springframework.web.bind.annotation.*;
import org.springframework.beans.factory.annotation.Autowired; //
import org.springframework.web.bind.annotation.*; //
///**
// * Created by Rex on 2018-11-19
/** // */
* Created by Rex on 2018-11-19 //
*/ //@RestController
//@RequestMapping("/user")
@RestController //public class UserController {
@RequestMapping("/user") //
public class UserController { // @Autowired
// private UserService userService;
@Autowired //
private UserService userService; // /**
// * Register new User.
/** // */
* Register new User. // @PostMapping("/add")
*/ // public void register(@RequestBody User user) throws UserAlreadyExistException{
@PostMapping("/add") // userService.register(user);
public void register(@RequestBody User user) throws UserAlreadyExistException{ // }
userService.register(user); //
} // /**
// * User Login.
/** // */
* User Login. // @PostMapping("/add")
*/ // public void login(@RequestBody User user) throws UserNotFoundException {
@PostMapping("/add") // userService.login(user);
public void login(@RequestBody User user) throws UserNotFoundException { // }
userService.login(user); //
} //}
}
package edu.uchicago.mpcs.topics.db.Impl; //package edu.uchicago.mpcs.topics.db.Impl;
//
import edu.uchicago.mpcs.topics.db.UserRepository; //import edu.uchicago.mpcs.topics.db.UserRepository;
import edu.uchicago.mpcs.topics.query.UserQuery; //import edu.uchicago.mpcs.topics.query.UserQuery;
import edu.uchicago.mpcs.topics.user.User; //import edu.uchicago.mpcs.topics.user.User;
import org.hibernate.query.Query; //import org.hibernate.query.Query;
import org.hibernate.SessionFactory; //import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; //import org.springframework.stereotype.Repository;
//
import java.io.Serializable; //import java.io.Serializable;
import java.math.BigInteger; //import java.math.BigInteger;
import java.util.Optional; //import java.util.Optional;
//
/** ///**
* Created by Rex on 2018-11-20 // * Created by Rex on 2018-11-20
*/ // */
//
@Repository //@Repository
public class UserRepositoryImpl implements UserRepository { //public class UserRepositoryImpl implements UserRepository {
//
@Autowired // @Autowired
private SessionFactory sessionFactory; // private SessionFactory sessionFactory;
//
@Override // @Override
public User register(User user) { // public User register(User user) {
Serializable userId = sessionFactory.getCurrentSession().save(user); // Serializable userId = sessionFactory.getCurrentSession().save(user);
return user; // return user;
} // }
//
@Override // @Override
public User login(String email, String password) { // public User login(String email, String password) {
Query query = sessionFactory.getCurrentSession().createQuery(UserQuery.IS_AUTHENTICATED); // Query query = sessionFactory.getCurrentSession().createQuery(UserQuery.IS_AUTHENTICATED);
query.setParameter("email", email); // query.setParameter("email", email);
query.setParameter("password", password); // query.setParameter("password", password);
User userFetched = (User) query.uniqueResult(); // User userFetched = (User) query.uniqueResult();
return userFetched; // return userFetched;
} // }
//
@Override // @Override
public boolean isUserAlreadyExist(String email) { // public boolean isUserAlreadyExist(String email) {
Query query = sessionFactory.getCurrentSession().createQuery(UserQuery.IS_USER_ID_EXIST); // Query query = sessionFactory.getCurrentSession().createQuery(UserQuery.IS_USER_ID_EXIST);
query.setParameter("email", email); // query.setParameter("email", email);
BigInteger count = (BigInteger) query.uniqueResult(); // BigInteger count = (BigInteger) query.uniqueResult();
if (count.intValue() > 0) { // if (count.intValue() > 0) {
return true; // return true;
} // }
return false; // return false;
} // }
//
@Override // @Override
public Optional<User> getUserByEmail(String email) { // public Optional<User> getUserByEmail(String email) {
Query query = sessionFactory.getCurrentSession().createQuery(UserQuery.USER_BY_EMAIL); // Query query = sessionFactory.getCurrentSession().createQuery(UserQuery.USER_BY_EMAIL);
query.setParameter("email", email); // query.setParameter("email", email);
User user = (User) query.uniqueResult(); // User user = (User) query.uniqueResult();
return Optional.ofNullable(user); // return Optional.ofNullable(user);
} // }
//
@Override // @Override
public <S extends User> S save(S s) { // public <S extends User> S save(S s) {
return null; // return null;
} // }
//
@Override // @Override
public <S extends User> Iterable<S> saveAll(Iterable<S> iterable) { // public <S extends User> Iterable<S> saveAll(Iterable<S> iterable) {
return null; // return null;
} // }
//
@Override // @Override
public Optional<User> findById(String s) { // public Optional<User> findById(String s) {
return Optional.empty(); // return Optional.empty();
} // }
//
@Override // @Override
public boolean existsById(String s) { // public boolean existsById(String s) {
return false; // return false;
} // }
//
@Override // @Override
public Iterable<User> findAll() { // public Iterable<User> findAll() {
return null; // return null;
} // }
//
@Override // @Override
public Iterable<User> findAllById(Iterable<String> iterable) { // public Iterable<User> findAllById(Iterable<String> iterable) {
return null; // return null;
} // }
//
@Override // @Override
public long count() { // public long count() {
return 0; // return 0;
} // }
//
@Override // @Override
public void deleteById(String s) { // public void deleteById(String s) {
//
} // }
//
@Override // @Override
public void delete(User user) { // public void delete(User user) {
//
} // }
//
@Override // @Override
public void deleteAll(Iterable<? extends User> iterable) { // public void deleteAll(Iterable<? extends User> iterable) {
//
} // }
//
@Override // @Override
public void deleteAll() { // public void deleteAll() {
//
} // }
} //}
\ No newline at end of file \ No newline at end of file
package edu.uchicago.mpcs.topics.db;
import edu.uchicago.mpcs.topics.auction.Item;
import edu.uchicago.mpcs.topics.user.User;
import org.springframework.data.repository.CrudRepository;
public interface UserDB extends CrudRepository<User, String>
{
}
\ 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.repository.CrudRepository;
//
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 CrudRepository<User, String>{ //public interface UserRepository extends CrudRepository<User, String>{
User register(User user); // User register(User user);
//
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.service; package edu.uchicago.mpcs.topics.service;
import edu.uchicago.mpcs.topics.db.UserRepository; import edu.uchicago.mpcs.topics.db.UserDB;
import edu.uchicago.mpcs.topics.db.UserRepository;
import edu.uchicago.mpcs.topics.user.User; import edu.uchicago.mpcs.topics.user.User;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -25,7 +24,7 @@ public class AdminService { ...@@ -25,7 +24,7 @@ public class AdminService {
// List<Listing> viewInProgressItems(); // List<Listing> viewInProgressItems();
// List<Listing> viewClosed(Query query); // List<Listing> viewClosed(Query query);
@Autowired @Autowired
private UserRepository userDB; private UserDB userDB;
public List<User> getAllUsers() public List<User> getAllUsers()
{ {
......
...@@ -2,6 +2,7 @@ package edu.uchicago.mpcs.topics.service; ...@@ -2,6 +2,7 @@ package edu.uchicago.mpcs.topics.service;
import edu.uchicago.mpcs.topics.auction.ItemCategory; import edu.uchicago.mpcs.topics.auction.ItemCategory;
import edu.uchicago.mpcs.topics.auction.Listing; import edu.uchicago.mpcs.topics.auction.Listing;
import org.hibernate.query.Query;
import java.util.List; import java.util.List;
......
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 {
//
void register(User user) throws UserAlreadyExistException; // void register(User user) throws UserAlreadyExistException;
//
User login(User user) throws UserNotFoundException; // User login(User user) throws UserNotFoundException;
//
} //}
\ 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.db.UserRepository;
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.user.User;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; //import org.springframework.stereotype.Service;
//import lombok.extern.slf4j.Slf4j;
/** //
* Created by Rex on 2018-11-20 //
*/ ///**
// * Created by Rex on 2018-11-20
@Service // */
public class UserServiceImpl implements UserService { //
//@Service
@Autowired //@Slf4j
private UserRepository userRepository; //public class UserServiceImpl implements UserService {
//
/** // @Autowired
* Register user. // private UserRepository userRepository;
* //
* @param user // /**
* @throws UserAlreadyExistException // * Register user.
*/ // *
@Override // * @param user
public void register(User user) throws UserAlreadyExistException { // * @throws UserAlreadyExistException
String email = user.getEmail(); // */
String password = user.getPassword(); // @Override
boolean isAdmin = user.getIsAdmin(); // public void register(User user) throws UserAlreadyExistException {
// String email = user.getEmail();
if (!userRepository.isUserAlreadyExist(email)) { // String password = user.getPassword();
user.setPassword(password); // boolean isAdmin = user.getIsAdmin();
user.setEmail(email); //
user.setIsAdmin(isAdmin); // if (!userRepository.isUserAlreadyExist(email)) {
userRepository.register(user); // user.setPassword(password);
} else { // user.setEmail(email);
throw new UserAlreadyExistException("user id being used, please try with other."); // user.setIsAdmin(isAdmin);
} // userRepository.register(user);
} // } else {
/** // throw new UserAlreadyExistException("user id being used, please try with other.");
* User login. // }
* // }
* @param user // /**
* @return // * User login.
* @throws UserNotFoundException // *
*/ // * @param user
@Override // * @return
public User login(User user) throws UserNotFoundException { // * @throws UserNotFoundException
String email = user.getEmail(); // */
String password = user.getPassword(); // @Override
// public User login(User user) throws UserNotFoundException {
user = userRepository.login(email, password); // String email = user.getEmail();
if (user == null) { // String password = user.getPassword();
throw new UserNotFoundException(String.format("User not found %s", email)); //
} // user = userRepository.login(email, password);
return user; // if (user == null) {
} // throw new UserNotFoundException(String.format("User not found %s", email));
} // }
// return user;
// }
//}
...@@ -5,8 +5,8 @@ import org.hibernate.SessionFactory; ...@@ -5,8 +5,8 @@ import org.hibernate.SessionFactory;
import org.hibernate.query.Query; import org.hibernate.query.Query;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import javax.persistence.Entity; import javax.persistence.*;
import javax.persistence.Id; import org.hibernate.annotations.GenericGenerator;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigInteger; import java.math.BigInteger;
import java.util.Optional; import java.util.Optional;
...@@ -19,12 +19,32 @@ import java.util.Optional; ...@@ -19,12 +19,32 @@ import java.util.Optional;
public class User { public class User {
@Id @Id
private String userId; @Column(name = "USER_ID")
@GenericGenerator(strategy = "uuid2", name = "uuid")
@GeneratedValue(generator = "uuid") private String userId;
@Column(name = "PASSWORD", nullable = false)
private String password; private String password;
@Column(name = "FIRST_NAME", nullable = false)
private String firstName; private String firstName;
@Column(name = "LAST_NAME", nullable = false)
private String lastName; private String lastName;
@Column(name = "EMAIL", nullable = false, unique = true)
private String email; private String email;
private Boolean isAdmin;
@Column(name = "ADMIN", nullable = false)
private boolean isAdmin;
// @OneToMany(mappedBy = "user", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
// private Set<Sale> sales;
//
// @OneToMany(mappedBy = "user", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
// private Set<Bid> bids;
public User() {}
public User(String userId, String password, String firstName, String lastName, String email, boolean isAdmin) public User(String userId, String password, String firstName, String lastName, String email, boolean isAdmin)
{ {
......
spring.data.rest.base-path=/api
spring.h2.console.enabled=true
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
table {
border-collapse: collapse;
}
td, th {
border: 1px solid #999;
padding: 0.5rem;
text-align: left;
}
\ No newline at end of file
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head lang="en">
<meta charset="UTF-8"/>
<title>ReactJS + Spring Data REST</title>
<link rel="stylesheet" href="/main.css" />
</head>
<body>
<div id="react"></div>
<script src="built/bundle.js"></script>
</body>
</html>
\ No newline at end of file
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