diff --git a/bookstore-api/.idea/workspace.xml b/bookstore-api/.idea/workspace.xml index 0dee028..28b59f1 100644 --- a/bookstore-api/.idea/workspace.xml +++ b/bookstore-api/.idea/workspace.xml @@ -16,10 +16,10 @@ - + - + @@ -28,11 +28,33 @@ + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -58,11 +80,11 @@ - + - - + + @@ -71,8 +93,8 @@ - - + + @@ -81,8 +103,8 @@ - - + + @@ -93,8 +115,8 @@ @@ -120,10 +142,7 @@ @@ -984,12 +1007,12 @@ - + - @@ -1013,7 +1036,7 @@ - + @@ -1045,13 +1068,6 @@ - - - - - - - @@ -1067,13 +1083,6 @@ - - - - - - - @@ -1460,30 +1469,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -1500,17 +1485,9 @@ - - - - - - - - - + @@ -1518,5 +1495,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bookstore-api/src/main/java/com/bookstore/domain/BillingAddress.java b/bookstore-api/src/main/java/com/bookstore/domain/BillingAddress.java index 48e1430..f6185c6 100644 --- a/bookstore-api/src/main/java/com/bookstore/domain/BillingAddress.java +++ b/bookstore-api/src/main/java/com/bookstore/domain/BillingAddress.java @@ -1,5 +1,7 @@ package com.bookstore.domain; +import com.fasterxml.jackson.annotation.JsonIgnore; + import javax.persistence.*; import java.io.Serializable; @@ -24,6 +26,7 @@ public class BillingAddress implements Serializable{ private String billingAddressZipcode; @OneToOne + @JsonIgnore private Order order; public Long getId() { diff --git a/bookstore-api/src/main/java/com/bookstore/domain/Order.java b/bookstore-api/src/main/java/com/bookstore/domain/Order.java index 43a4b98..e7642e6 100644 --- a/bookstore-api/src/main/java/com/bookstore/domain/Order.java +++ b/bookstore-api/src/main/java/com/bookstore/domain/Order.java @@ -31,15 +31,12 @@ public class Order implements Serializable { private List cartItemList; @OneToOne(cascade=CascadeType.ALL) - @JsonIgnore private ShippingAddress shippingAddress; @OneToOne(cascade=CascadeType.ALL) - @JsonIgnore private BillingAddress billingAddress; @OneToOne(cascade=CascadeType.ALL) - @JsonIgnore private Payment payment; @ManyToOne diff --git a/bookstore-api/src/main/java/com/bookstore/domain/Payment.java b/bookstore-api/src/main/java/com/bookstore/domain/Payment.java index c484208..812ee35 100644 --- a/bookstore-api/src/main/java/com/bookstore/domain/Payment.java +++ b/bookstore-api/src/main/java/com/bookstore/domain/Payment.java @@ -1,5 +1,7 @@ package com.bookstore.domain; +import com.fasterxml.jackson.annotation.JsonIgnore; + import javax.persistence.*; import java.io.Serializable; @@ -24,6 +26,7 @@ public class Payment implements Serializable { private boolean defaultPayment; @OneToOne + @JsonIgnore private Order order; public Long getId() { diff --git a/bookstore-api/src/main/java/com/bookstore/domain/ShippingAddress.java b/bookstore-api/src/main/java/com/bookstore/domain/ShippingAddress.java index c43cd5b..d5de4f0 100644 --- a/bookstore-api/src/main/java/com/bookstore/domain/ShippingAddress.java +++ b/bookstore-api/src/main/java/com/bookstore/domain/ShippingAddress.java @@ -1,5 +1,7 @@ package com.bookstore.domain; +import com.fasterxml.jackson.annotation.JsonIgnore; + import javax.persistence.*; import java.io.Serializable; @@ -24,6 +26,7 @@ public class ShippingAddress implements Serializable { private String shippingAddressZipcode; @OneToOne + @JsonIgnore private Order order; public Long getId() { diff --git a/bookstore-api/src/main/java/com/bookstore/resource/OrderResource.java b/bookstore-api/src/main/java/com/bookstore/resource/OrderResource.java new file mode 100644 index 0000000..021e5fd --- /dev/null +++ b/bookstore-api/src/main/java/com/bookstore/resource/OrderResource.java @@ -0,0 +1,33 @@ +package com.bookstore.resource; + +import com.bookstore.domain.Order; +import com.bookstore.domain.User; +import com.bookstore.service.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.security.Principal; +import java.util.List; + +/** + * Created by z00382545 on 3/11/17. + */ + +@RestController +@RequestMapping("/order") +public class OrderResource { + + @Autowired + private UserService userService; + + @RequestMapping("/getOrderList") + public List getOrderList( + Principal principal + ) { + User user = userService.findByUsername(principal.getName()); + List orderList = user.getOrderList(); + + return orderList; + } +} diff --git a/bookstore-api/target/classes/com/bookstore/domain/BillingAddress.class b/bookstore-api/target/classes/com/bookstore/domain/BillingAddress.class index aa83e2f..112b91f 100644 Binary files a/bookstore-api/target/classes/com/bookstore/domain/BillingAddress.class and b/bookstore-api/target/classes/com/bookstore/domain/BillingAddress.class differ diff --git a/bookstore-api/target/classes/com/bookstore/domain/Order.class b/bookstore-api/target/classes/com/bookstore/domain/Order.class index f82667b..c14b5cf 100644 Binary files a/bookstore-api/target/classes/com/bookstore/domain/Order.class and b/bookstore-api/target/classes/com/bookstore/domain/Order.class differ diff --git a/bookstore-api/target/classes/com/bookstore/domain/Payment.class b/bookstore-api/target/classes/com/bookstore/domain/Payment.class index 30371f8..d5ed5af 100644 Binary files a/bookstore-api/target/classes/com/bookstore/domain/Payment.class and b/bookstore-api/target/classes/com/bookstore/domain/Payment.class differ diff --git a/bookstore-api/target/classes/com/bookstore/domain/ShippingAddress.class b/bookstore-api/target/classes/com/bookstore/domain/ShippingAddress.class index 6928be6..8d47fdf 100644 Binary files a/bookstore-api/target/classes/com/bookstore/domain/ShippingAddress.class and b/bookstore-api/target/classes/com/bookstore/domain/ShippingAddress.class differ diff --git a/bookstore-api/target/classes/com/bookstore/resource/CheckoutResource.class b/bookstore-api/target/classes/com/bookstore/resource/CheckoutResource.class index 0d0b0ea..5285da3 100644 Binary files a/bookstore-api/target/classes/com/bookstore/resource/CheckoutResource.class and b/bookstore-api/target/classes/com/bookstore/resource/CheckoutResource.class differ diff --git a/bookstore-api/target/classes/com/bookstore/resource/OrderResource.class b/bookstore-api/target/classes/com/bookstore/resource/OrderResource.class new file mode 100644 index 0000000..4d8ffeb Binary files /dev/null and b/bookstore-api/target/classes/com/bookstore/resource/OrderResource.class differ diff --git a/store-front/src/app/app.module.ts b/store-front/src/app/app.module.ts index cb624a1..056fdee 100644 --- a/store-front/src/app/app.module.ts +++ b/store-front/src/app/app.module.ts @@ -21,6 +21,8 @@ import { ShippingService } from './services/shipping.service'; import { BookService } from './services/book.service'; import { CartService } from './services/cart.service'; import { CheckoutService } from './services/checkout.service'; +import { OrderService } from './services/order.service'; + import { MyAccountComponent } from './components/my-account/my-account.component'; import { MyProfileComponent } from './components/my-profile/my-profile.component'; @@ -59,7 +61,8 @@ import { OrderSummaryComponent } from './components/order-summary/order-summary. ShippingService, BookService, CartService, - CheckoutService + CheckoutService, + OrderService ], bootstrap: [AppComponent] }) diff --git a/store-front/src/app/components/my-profile/my-profile.component.html b/store-front/src/app/components/my-profile/my-profile.component.html index 050faaf..0794811 100644 --- a/store-front/src/app/components/my-profile/my-profile.component.html +++ b/store-front/src/app/components/my-profile/my-profile.component.html @@ -84,8 +84,8 @@ - + {{order.orderDate}} {{order.id}} {{order.orderTotal}} diff --git a/store-front/src/app/components/my-profile/my-profile.component.ts b/store-front/src/app/components/my-profile/my-profile.component.ts index 196aaf9..8e12dfb 100644 --- a/store-front/src/app/components/my-profile/my-profile.component.ts +++ b/store-front/src/app/components/my-profile/my-profile.component.ts @@ -5,10 +5,13 @@ import {LoginService} from "../../services/login.service"; import {UserService} from "../../services/user.service"; import {PaymentService} from "../../services/payment.service"; import {ShippingService} from "../../services/shipping.service"; +import {OrderService} from "../../services/order.service"; import {User} from '../../models/user'; import {UserPayment} from '../../models/user-payment'; import {UserBilling} from '../../models/user-billing'; import {UserShipping} from '../../models/user-shipping'; +import {Order} from '../../models/order'; + @Component({ selector: 'app-my-profile', @@ -53,11 +56,16 @@ export class MyProfileComponent implements OnInit { private defaultUserShippingId:number; private defaultShippingSet: boolean; + private orderList: Order[] = []; + private order:Order = new Order(); + private displayOrderDetail:boolean; + constructor ( private paymentService:PaymentService, private shippingService:ShippingService, private loginService: LoginService, private userService: UserService, + private orderService: OrderService, private router: Router ){ } @@ -136,6 +144,12 @@ export class MyProfileComponent implements OnInit { ); } + onDisplayOrder (order:Order) { + console.log(order); + this.order=order; + this.displayOrderDetail=true; + } + onNewPayment () { this.paymentService.newPayment(this.userPayment).subscribe( res => { @@ -263,6 +277,15 @@ export class MyProfileComponent implements OnInit { } ); + this.orderService.getOrderList().subscribe( + res => { + this.orderList = res.json(); + }, + error => { + console.log(error.text()); + } + ); + this.getCurrentUser(); for (let s in AppConst.usStates) { diff --git a/store-front/src/app/services/order.service.spec.ts b/store-front/src/app/services/order.service.spec.ts new file mode 100644 index 0000000..5c808c2 --- /dev/null +++ b/store-front/src/app/services/order.service.spec.ts @@ -0,0 +1,16 @@ +/* tslint:disable:no-unused-variable */ + +import { TestBed, async, inject } from '@angular/core/testing'; +import { OrderService } from './order.service'; + +describe('OrderService', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [OrderService] + }); + }); + + it('should ...', inject([OrderService], (service: OrderService) => { + expect(service).toBeTruthy(); + })); +}); diff --git a/store-front/src/app/services/order.service.ts b/store-front/src/app/services/order.service.ts new file mode 100644 index 0000000..e03b5c8 --- /dev/null +++ b/store-front/src/app/services/order.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; +import {Headers, Http} from "@angular/http"; +import {AppConst} from '../constants/app-const'; +import {Order} from '../models/order'; + +@Injectable() +export class OrderService { + + constructor(private http: Http) { } + + getOrderList () { + let url = AppConst.serverPath+"/order/getOrderList"; + + let tokenHeader = new Headers ({ + 'x-auth-token' : localStorage.getItem("xAuthToken") + }); + return this.http.get(url, {headers : tokenHeader}); + } +}