Commit c8d65943 by Rex Zhou

add user database and services

parent 4951df1d
package edu.uchicago.mpcs.topics.controller;
import edu.uchicago.mpcs.topics.auction.Item;
import edu.uchicago.mpcs.topics.service.ItemService;
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.*;
import java.util.List;
/**
* Created by Rex on 2018-11-19
*/
@RestController
@RequestMapping("/item")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/list")
public List<User> getAllUsers()
{
return userService.getAllUsers();
}
@PostMapping("/add")
public void addUser(@RequestBody User user)
{
userService.addUser(user);
}
@DeleteMapping("/remove")
public void removeUser(@RequestBody User user) //or change to item ID
{
userService.deleteUser(user.getUserId());
}
@PutMapping("/update")
public void updateUser(@RequestBody User user)
{
userService.updateUser(user);
}
}
...@@ -2,17 +2,17 @@ package edu.uchicago.mpcs.topics.db; ...@@ -2,17 +2,17 @@ package edu.uchicago.mpcs.topics.db;
import edu.uchicago.mpcs.topics.user.Admin; import edu.uchicago.mpcs.topics.user.Admin;
import edu.uchicago.mpcs.topics.user.Buyer; import edu.uchicago.mpcs.topics.user.Buyer;
import edu.uchicago.mpcs.topics.user.CustomerSupport;
import edu.uchicago.mpcs.topics.user.Seller; import edu.uchicago.mpcs.topics.user.Seller;
import edu.uchicago.mpcs.topics.user.User;
import org.springframework.data.repository.CrudRepository;
public interface UserDB { public interface UserDB extends CrudRepository<User, String>{
void create(Admin admin); // void create(Admin admin);
void create(Seller seller); // void create(Seller seller);
void create(Buyer buyer); // void create(Buyer buyer);
void create(CustomerSupport customerSupport); //
// void block(Admin admin);
// void block(Seller seller);
// void block(Buyer buyer);
void block(Admin admin);
void block(Seller seller);
void block(Buyer buyer);
void block(CustomerSupport customerSupport);
} }
package edu.uchicago.mpcs.topics.service;
import edu.uchicago.mpcs.topics.auction.ItemCategory;
import edu.uchicago.mpcs.topics.auction.Listing;
import edu.uchicago.mpcs.topics.auction.Query;
import edu.uchicago.mpcs.topics.user.User;
import java.util.List;
public interface AdminService {
void block(User user);
void remove(User user);
void suspend(User user);
void addCategory(ItemCategory itemCategory);
void modifyCategory(ItemCategory itemCategory);
void removeCategory(ItemCategory itemCategory);
void stopAuction(Listing listing, User user);
List<Listing> viewFlaggedItems();
List<Listing> viewInProgressItems();
List<Listing> viewClosed(Query query);
}
package edu.uchicago.mpcs.topics.service;
import edu.uchicago.mpcs.topics.db.UserDB;
import edu.uchicago.mpcs.topics.user.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.ArrayList;
@Service
public class UserService {
// void block(User user);
// void remove(User user);
// void suspend(User user);
// void addCategory(ItemCategory itemCategory);
// void modifyCategory(ItemCategory itemCategory);
// void removeCategory(ItemCategory itemCategory);
// void stopAuction(Listing listing, User user);
// List<Listing> viewFlaggedItems();
// List<Listing> viewInProgressItems();
// List<Listing> viewClosed(Query query);
@Autowired
private UserDB userDB;
public List<User> getAllUsers()
{
List<User> users = new ArrayList<>();
userDB.findAll().forEach(users::add);
return users;
}
public void addUser(User user)
{
userDB.save(user);
}
public void deleteUser(String userId)
{
userDB.deleteById(userId);
}
public void updateUser(User user)
{
userDB.save(user);
}
}
package edu.uchicago.mpcs.topics.user; package edu.uchicago.mpcs.topics.user;
import javax.persistence.Entity;
//import javax.persistence.Id;
/**
* Modified by Rex on 2018-11-18.
**/
@ Entity
public class Admin extends User { public class Admin extends User {
public Admin(String userId, String password, String firstName, String lastName, String email, boolean isAdmin) {
super(userId, password, firstName, lastName, email, true);
}
} }
...@@ -2,7 +2,16 @@ package edu.uchicago.mpcs.topics.user; ...@@ -2,7 +2,16 @@ package edu.uchicago.mpcs.topics.user;
import edu.uchicago.mpcs.topics.transaction.ShoppingCart; import edu.uchicago.mpcs.topics.transaction.ShoppingCart;
import javax.persistence.Entity;
/**
* Modified by Rex on 2018-11-18.
**/
@Entity
public class Buyer extends User { public class Buyer extends User {
private ShoppingCart shoppingCart;
private WatchList watchList; public Buyer(String userId, String password, String firstName, String lastName, String email, boolean isAdmin) {
super(userId, password, firstName, lastName, email, false);
}
} }
package edu.uchicago.mpcs.topics.user; package edu.uchicago.mpcs.topics.user;
//
public class CustomerSupport extends User { //public class CustomerSupport extends User {
} //}
package edu.uchicago.mpcs.topics.user; package edu.uchicago.mpcs.topics.user;
/**
* Modified by Rex on 2018-11-18.
**/
import javax.persistence.Entity;
@Entity
public class Seller extends User { public class Seller extends User {
public Seller(String userId, String password, String firstName, String lastName, String email, boolean isAdmin) {
super(userId, password, firstName, lastName, email, false);
}
} }
package edu.uchicago.mpcs.topics.user; package edu.uchicago.mpcs.topics.user;
import javax.persistence.Entity;
import javax.persistence.Id;
/**
* Modified by Rex on 2018-11-18.
**/
@Entity
public class User { public class User {
private String id;
@Id
private String userId;
private String password; private String password;
private String firstName; private String firstName;
private String lastName; private String lastName;
private String email;
private Boolean isAdmin;
public User(String userId, String password, String firstName, String lastName, String email, boolean isAdmin)
{
this.userId = userId;
this.password = password;
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.isAdmin = isAdmin;
}
public String getId() { public String getUserId() {
return id; return userId;
} }
public void setId(String id) { public void setId(String userId) {
this.id = id; this.userId = userId;
} }
public String getPassword() { public String getPassword() {
...@@ -37,4 +60,13 @@ public class User { ...@@ -37,4 +60,13 @@ public class User {
public void setLastName(String lastName) { public void setLastName(String lastName) {
this.lastName = lastName; this.lastName = lastName;
} }
public String getEmail() { return email; }
public void setEmail() { this.email = email; }
public boolean getIsAdmin() { return isAdmin; }
public void setIsAdmin() { this.isAdmin = isAdmin; }
} }
...@@ -3,15 +3,15 @@ package edu.uchicago.mpcs.topics.user; ...@@ -3,15 +3,15 @@ package edu.uchicago.mpcs.topics.user;
import edu.uchicago.mpcs.topics.auction.Item; import edu.uchicago.mpcs.topics.auction.Item;
import java.util.List; import java.util.List;
//
public class WatchList { //public class WatchList {
private List<Item> items; // private List<Item> items;
//
public List<Item> getItems() { // public List<Item> getItems() {
return items; // return items;
} // }
//
public void setItems(List<Item> items) { // public void setItems(List<Item> items) {
this.items = items; // this.items = items;
} // }
} //}
spring.data.rest.base-path=/api spring.data.rest.base-path=/api
#amazon.dynamodb.endpoint=http://localhost:8000/
\ 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