summaryrefslogtreecommitdiffstats
path: root/sandbox/sebastien/java/sca-node/tutorial/www-services/catalog-amazon/cart-amazon/src/main/java/shoppingstore/services/cart/CartServiceImpl.java
blob: 1579dbd60de553409cbbf9822547021653c668ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
package shoppingstore.services.cart;

import java.util.HashMap;

import org.osoa.sca.annotations.Scope;

import com.amazon.webservices.awsecommerceservice._2007_05_14.Cart;
import com.amazon.webservices.awsecommerceservice._2007_05_14.CartAdd;
import com.amazon.webservices.awsecommerceservice._2007_05_14.CartAddRequest;
import com.amazon.webservices.awsecommerceservice._2007_05_14.CartAddResponse;
import com.amazon.webservices.awsecommerceservice._2007_05_14.CartClear;
import com.amazon.webservices.awsecommerceservice._2007_05_14.CartClearResponse;
import com.amazon.webservices.awsecommerceservice._2007_05_14.CartCreate;
import com.amazon.webservices.awsecommerceservice._2007_05_14.CartCreateResponse;
import com.amazon.webservices.awsecommerceservice._2007_05_14.CartGet;
import com.amazon.webservices.awsecommerceservice._2007_05_14.CartGetResponse;
import com.amazon.webservices.awsecommerceservice._2007_05_14.CartItem;
import com.amazon.webservices.awsecommerceservice._2007_05_14.CartItems;
import com.amazon.webservices.awsecommerceservice._2007_05_14.CartModify;
import com.amazon.webservices.awsecommerceservice._2007_05_14.CartModifyResponse;

@Scope("COMPOSITE")
public class CartServiceImpl implements CartService {
	
	private static long ID = 0;
	
	private HashMap<String, Cart> cartsHash = new HashMap<String, Cart>();
	
	public CartAddResponse CartAdd(CartAdd cartAdd) {
		System.out.println("Entering cartAdd...");
		System.out.println("CartServiceID: " + this.toString());
		CartAddResponse cartAddResponse = new CartAddResponse();
		
		CartAddRequest cartAddRequest = cartAdd.getRequest().get(0);
		
		//Cart cart = getCart(cartAddRequest.getCartId());
		Cart cart = getCart(cartAdd.getAWSAccessKeyId());
		if(cart == null){
			cartAddResponse.getCart().add(new Cart());
			return cartAddResponse;
		}
		
		CartItem cartItem = new CartItem();
		cartItem.setASIN(cartAddRequest.getItems().getItem().get(0).getASIN());
		cartItem.setQuantity(cartAddRequest.getItems().getItem().get(0).getQuantity().toString());
		cart.getCartItems().getCartItem().add(cartItem);
		cartAddResponse.getCart().add(cart);
		System.out.println("Exiting cartAdd...");
		return cartAddResponse;
	}

	public CartClearResponse CartClear(CartClear cartClear) {
		System.out.println("CartServiceID: " + this.toString());
		System.out.println("Entering cartClear...");
		CartClearResponse cartClearResponse = new CartClearResponse();
		
		//CartClearRequest cartClearRequest = cartClear.getRequest().get(0);
		
		//Cart cart = getCart(cartClearRequest.getCartId());
		Cart cart = getCart(cartClear.getAWSAccessKeyId());
		if(cart == null) {
			cartClearResponse.getCart().add(new Cart());
			return cartClearResponse;
		}
		
		cart.getCartItems().getCartItem().clear();
				
		cartClearResponse.getCart().add(cart);
		System.out.println("Exiting cartClear...");
		return cartClearResponse;
	}

	public CartCreateResponse CartCreate(CartCreate cartCreate) {
		System.out.println("CartServiceID: " + this.toString());
		System.out.println("Entering cartCreate...");
		CartCreateResponse cartCreateResponse = new CartCreateResponse();
		
		Cart cart = getCart(cartCreate.getAWSAccessKeyId());
		if(cart != null){
			cartCreateResponse.getCart().add(cart);
			System.out.println("User " + cartCreate.getAWSAccessKeyId() + " has already created a cart with ID: " + cart.getCartId());
			return cartCreateResponse;
		}

		cart = new Cart();		
		cart.setCartId(this.generateID());
		cart.setCartItems(new CartItems());		
		addCart(cartCreate.getAWSAccessKeyId(), cart);
		
		cartCreateResponse.getCart().add(cart);
		System.out.println("Exiting cartCreate...");
		return cartCreateResponse;
	}

	public CartGetResponse CartGet(CartGet cartGet) {
		System.out.println("CartServiceID: " + this.toString());
		System.out.println("Entering cartGet...");
		CartGetResponse cartGetResponse = new CartGetResponse();
		
		//CartGetRequest cartGetRequest = cartGet.getRequest().get(0);
		
		//Cart cart = getCart(cartGetRequest.getCartId());
		Cart cart = getCart(cartGet.getAWSAccessKeyId());
		if(cart == null){
			cartGetResponse.getCart().add(new Cart());
			return cartGetResponse;
		}
		
		cartGetResponse.getCart().add(cart);
		System.out.println("Exiting cartGet...");
		return cartGetResponse;
	}

	public CartModifyResponse CartModify(CartModify cartModify) {
		// TODO Auto-generated method stub
		return null;
	}
	
	private synchronized String generateID(){
		ID++;
		return String.valueOf(ID);
	}
	
	
	private Cart getCart(String cartId){
		Cart cart = null;
		System.out.println(this.cartsHash.toString());
		cart = this.cartsHash.get(cartId);
		return cart;
	}
	
	private void addCart(String cartId, Cart cart){
		this.cartsHash.put(cartId, cart);
	}
/*
	public void start() {
		System.out.println("Start CartService...");
	}

	public void stop() {
		System.out.println("Stop CartService...");
	}
*/	
}