Skip to content
Snippets Groups Projects
Commit 00ee7351 authored by dmz39's avatar dmz39
Browse files

Updating address implementation and database relation

parent e0eb30fd
No related branches found
No related tags found
No related merge requests found
...@@ -15,5 +15,6 @@ CREATE TABLE address ( ...@@ -15,5 +15,6 @@ CREATE TABLE address (
city TEXT NOT NULL, city TEXT NOT NULL,
state TEXT NOT NULL, state TEXT NOT NULL,
zip TEXT NOT NULL, zip TEXT NOT NULL,
user_id BIGINT NOT NULL) user_id BIGINT NOT NULL,
is_billing BOOLEAN NOT NULL)
WITH (OIDS = FALSE); WITH (OIDS = FALSE);
\ No newline at end of file
package edu.drexel.TrainDemo.Services; package edu.drexel.TrainDemo.Services;
import edu.drexel.TrainDemo.models.Address;
import edu.drexel.TrainDemo.models.UserEntity; import edu.drexel.TrainDemo.models.UserEntity;
import org.springframework.security.oauth2.core.user.OAuth2User; import org.springframework.security.oauth2.core.user.OAuth2User;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -8,6 +9,7 @@ import java.util.List; ...@@ -8,6 +9,7 @@ import java.util.List;
@Service @Service
public interface UserService { public interface UserService {
// User Functions
List<UserEntity> getUsers(); List<UserEntity> getUsers();
UserEntity getUser(OAuth2User principal); UserEntity getUser(OAuth2User principal);
UserEntity getUser(long id); UserEntity getUser(long id);
...@@ -15,4 +17,11 @@ public interface UserService { ...@@ -15,4 +17,11 @@ public interface UserService {
void saveUser(OAuth2User principal, UserEntity newUser); void saveUser(OAuth2User principal, UserEntity newUser);
void saveUser(UserEntity user, UserEntity newUser); void saveUser(UserEntity user, UserEntity newUser);
void removeUser(OAuth2User principal); void removeUser(OAuth2User principal);
// Address Functions
List<Address> getBillingAddresses(OAuth2User principal);
//List<Address> getBillingAddresses(long userid);
List<Address> getMailingAddresses(OAuth2User principal);
//List<Address> getMailingAddresses(long userid);
void saveAddress(OAuth2User principal, Address address);
} }
package edu.drexel.TrainDemo.Services; package edu.drexel.TrainDemo.Services;
import edu.drexel.TrainDemo.Utils; import edu.drexel.TrainDemo.Utils;
import edu.drexel.TrainDemo.models.Address;
import edu.drexel.TrainDemo.models.UserEntity; import edu.drexel.TrainDemo.models.UserEntity;
import edu.drexel.TrainDemo.repositories.AddressRepository;
import edu.drexel.TrainDemo.repositories.UserRepository; import edu.drexel.TrainDemo.repositories.UserRepository;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.oauth2.core.user.OAuth2User; import org.springframework.security.oauth2.core.user.OAuth2User;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import sun.rmi.rmic.Util;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -20,6 +23,9 @@ public class UserServiceImpl implements UserService { ...@@ -20,6 +23,9 @@ public class UserServiceImpl implements UserService {
@Autowired @Autowired
private UserRepository userRepo; private UserRepository userRepo;
@Autowired
private AddressRepository addressRepo;
@Override @Override
public List<UserEntity> getUsers() { public List<UserEntity> getUsers() {
List<UserEntity> allUsers = new ArrayList<>(); List<UserEntity> allUsers = new ArrayList<>();
...@@ -71,4 +77,30 @@ public class UserServiceImpl implements UserService { ...@@ -71,4 +77,30 @@ public class UserServiceImpl implements UserService {
public void removeUser(OAuth2User principal) { public void removeUser(OAuth2User principal) {
this.userRepo.delete(getUser(principal)); this.userRepo.delete(getUser(principal));
} }
@Override
public List<Address> getBillingAddresses(OAuth2User principal) {
return this.addressRepo.findAddressesByUserIdAndIsBilling(this.getIdFromOAuth(principal), true);
}
@Override
public List<Address> getMailingAddresses(OAuth2User principal) {
return this.addressRepo.findAddressesByUserIdAndIsBilling(this.getIdFromOAuth(principal), false);
}
@Override
public void saveAddress(OAuth2User principal, Address address) {
this.addressRepo.save(address);
}
/**
* Helper method to get user id from principal.
* @param principal
* @return
*/
public long getIdFromOAuth(OAuth2User principal) {
return Utils.intToLong(principal.getAttribute("id"));
}
} }
...@@ -42,8 +42,8 @@ public class UserController { ...@@ -42,8 +42,8 @@ public class UserController {
@RequestMapping("/user/billing") @RequestMapping("/user/billing")
String userBilling(@AuthenticationPrincipal OAuth2User principal, Model model) { String userBilling(@AuthenticationPrincipal OAuth2User principal, Model model) {
System.out.println((int) principal.getAttribute("id")); Long userid = Utils.intToLong(principal.getAttribute("id"));
System.out.println(principal.getAttributes());
return "user/billing"; return "user/billing";
} }
......
package edu.drexel.TrainDemo.models;
import com.sun.org.apache.xpath.internal.operations.Bool;
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name = "address")
public class Address implements Serializable {
static final long serialVersionUID = 42L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@Column(name = "line1")
private String line1;
@Column(name = "line2")
private String line2;
@Column(name = "city")
private String city;
@Column(name = "state")
private String state;
@Column(name = "zip")
private String zip;
@Column(name = "user_id")
private Long userId;
@Column(name = "is_billing")
private Boolean isBilling;
public Address(){}
public Address(String name, String line1, String line2, String city, String state, String zip, Long userId, Boolean isBilling) {
this.name = name;
this.line1 = line1;
this.line2 = line2;
this.city = city;
this.state = state;
this.zip = zip;
this.userId = userId;
this.isBilling = isBilling;
}
public Long getId() {
return id;
}
public String getName() {
return name;
}
public String getLine1() {
return line1;
}
public String getLine2() {
return line2;
}
public String getCity() {
return city;
}
public String getState() {
return state;
}
public String getZip() {
return zip;
}
public Long getUserId() {
return userId;
}
public Boolean getIsBilling() {
return isBilling;
}
}
package edu.drexel.TrainDemo.repositories;
import edu.drexel.TrainDemo.models.Address;
import org.springframework.data.repository.CrudRepository;
import java.util.List;
public interface AddressRepository extends CrudRepository<Address, Long> {
List<Address> findAddressesByUserIdAndIsBilling(long userid, Boolean isBilling);
}
...@@ -2,3 +2,23 @@ ...@@ -2,3 +2,23 @@
{ {
display:none; display:none;
} }
div.address-container {
border: 1px solid;
padding: 1rem;
box-shadow: 5px 10px 10px #888888;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
display: block;
}
div.list-row {
padding: 10px;
}
div.address {
margin-left: 20px;
margin-right: 20px;
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment