Subversion Repositories SmartDukaan

Rev

Rev 36321 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
36321 vikas 1
package com.spice.profitmandi.web.v2.controller;
2
 
3
import com.spice.profitmandi.dao.entity.fofo.CustomerAddress;
4
import com.spice.profitmandi.dao.entity.fofo.Customer;
5
import com.spice.profitmandi.dao.model.AddCartRequest;
6
import com.spice.profitmandi.common.model.CreatePendingOrderRequest;
7
import com.spice.profitmandi.web.controller.OtpLoginRequest;
8
import com.spice.profitmandi.web.controller.UserModel;
9
import com.spice.profitmandi.service.catalog.BiddingModel;
10
import com.spice.profitmandi.web.controller.StoreController;
11
import com.spice.profitmandi.web.v2.response.ApiResponse;
12
import org.springframework.beans.factory.annotation.Autowired;
36607 aman 13
import org.springframework.cache.annotation.Cacheable;
36321 vikas 14
import org.springframework.http.ResponseEntity;
15
import org.springframework.ui.Model;
16
import org.springframework.web.bind.annotation.*;
17
 
18
import javax.servlet.http.HttpServletRequest;
19
import javax.servlet.http.HttpServletResponse;
20
 
21
@RestController
22
@RequestMapping("/v2")
23
public class V2StoreController extends V2BaseController {
24
 
25
    @Autowired
26
    private StoreController storeController;
27
 
28
    @GetMapping("/store/entity/{id}")
29
    public ResponseEntity<ApiResponse<?>> getUnitFocoDeal(HttpServletRequest request,
30
                                                          @PathVariable(value = "id") long id) throws Throwable {
31
        return wrapResponse(storeController.getUnitFocoDeal(request, id));
32
    }
33
 
34
    @GetMapping("/store/brands")
35
    public ResponseEntity<ApiResponse<?>> getBrands(HttpServletRequest request,
36
                                                    @RequestParam(value = "category_id") String category_id) throws Throwable {
37
        return wrapResponse(storeController.getBrands(request, category_id));
38
    }
39
 
40
    @GetMapping("/store/listing/{listingUrl}")
41
    public ResponseEntity<ApiResponse<?>> bestSellers(HttpServletRequest request,
42
                                                      @PathVariable String listingUrl) throws Throwable {
43
        return wrapResponse(storeController.bestSellers(request, listingUrl));
44
    }
45
 
46
    @GetMapping("/store/otp/generateOTP")
47
    public ResponseEntity<ApiResponse<?>> generateOtp(HttpServletRequest request,
48
                                                      @RequestParam String mobile) throws Throwable {
49
        return wrapResponse(storeController.generateOtp(request, mobile));
50
    }
51
 
52
    @GetMapping("/store/checkmobile/{mobile}")
53
    public ResponseEntity<ApiResponse<?>> checkRegistrationUsingMobile(HttpServletRequest request,
54
                                                                       @PathVariable String mobile,
55
                                                                       @RequestParam(required = false, defaultValue = "false") boolean isSmartSeller) throws Throwable {
56
        return wrapResponse(storeController.checkRegistrationUsingMobile(request, mobile, isSmartSeller));
57
    }
58
 
59
    @GetMapping("/store/getCustomerById/{id}")
60
    public ResponseEntity<ApiResponse<?>> getCustomerById(HttpServletRequest request,
61
                                                          @PathVariable int id) throws Throwable {
62
        return wrapResponse(storeController.getCustomerById(request, id));
63
    }
64
 
65
    @PostMapping("/store/signin")
66
    public ResponseEntity<ApiResponse<?>> signIn(HttpServletRequest request,
67
                                                 @RequestBody UserModel userModel) throws Throwable {
68
        return wrapResponse(storeController.signIn(request, userModel));
69
    }
70
 
71
    @PostMapping("/store/resetPassword")
72
    public ResponseEntity<ApiResponse<?>> resetPassword(@RequestBody UserModel userModel) throws Throwable {
73
        return wrapResponse(storeController.resetPassword(userModel));
74
    }
75
 
76
    @PostMapping("/store/changePassword")
77
    public ResponseEntity<ApiResponse<?>> changePassword(@RequestBody UserModel userModel) throws Throwable {
78
        return wrapResponse(storeController.changePassword(userModel));
79
    }
80
 
81
    @PostMapping("/store/register")
82
    public ResponseEntity<ApiResponse<?>> register(HttpServletRequest request,
83
                                                   @RequestBody UserModel userModel) throws Throwable {
84
        return wrapResponse(storeController.register(request, userModel));
85
    }
86
 
87
    @PostMapping("/store/signinWithOtp")
88
    public ResponseEntity<ApiResponse<?>> signInWithOtp(HttpServletRequest request,
89
                                                        @RequestBody OtpLoginRequest otpLoginRequest) throws Throwable {
90
        return wrapResponse(storeController.signInWithOtp(request, otpLoginRequest));
91
    }
92
 
93
    @GetMapping("/store/checkplans")
94
    public ResponseEntity<ApiResponse<?>> getInsurancePrices(HttpServletRequest request,
95
                                                             @RequestParam float price,
96
                                                             Model model,
97
                                                             @RequestParam int itemId) throws Throwable {
98
        return wrapResponse(storeController.getInsurancePrices(request, price, model, itemId));
99
    }
100
 
101
    @PostMapping("/store/confirmOrder")
102
    public ResponseEntity<ApiResponse<?>> confirmOrder(HttpServletRequest request,
103
                                                       @RequestBody CreatePendingOrderRequest createPendingOrderRequest) throws Throwable {
104
        return wrapResponse(storeController.confirmOrder(request, createPendingOrderRequest));
105
    }
106
 
107
    @GetMapping("/store/address")
108
    public ResponseEntity<ApiResponse<?>> getAddress(HttpServletRequest request) throws Throwable {
109
        return wrapResponse(storeController.getAddress(request));
110
    }
111
 
112
    @PostMapping("/store/address/defaultAddress/{addressId}/{customerId}")
113
    public ResponseEntity<ApiResponse<?>> setDefaultAddress(HttpServletRequest request,
114
                                                            @PathVariable int addressId,
115
                                                            @PathVariable int customerId) throws Throwable {
116
        return wrapResponse(storeController.setDefaultAddress(request, addressId, customerId));
117
    }
118
 
119
    @GetMapping("/store/address/{pincode}")
120
    public ResponseEntity<ApiResponse<?>> getStoresByPincode(HttpServletRequest request,
121
                                                             @PathVariable String pincode) throws Throwable {
122
        return wrapResponse(storeController.getStoresByPincode(request, pincode));
123
    }
124
 
125
    @GetMapping("/store/addresses")
126
    public ResponseEntity<ApiResponse<?>> getStoresByPincod(HttpServletRequest request,
127
                                                            @RequestParam String pincode,
128
                                                            @RequestParam(name = "fofoCode", defaultValue = "", required = false) String fofoCode) throws Throwable {
129
        return wrapResponse(storeController.getStoresByPincod(request, pincode, fofoCode));
130
    }
131
 
132
    @GetMapping("/store/address/detail/{pincode}")
133
    public ResponseEntity<ApiResponse<?>> getStoresDetailsByPincode(HttpServletRequest request,
134
                                                                    @PathVariable String pincode) throws Throwable {
135
        return wrapResponse(storeController.getStoresDetailsByPincode(request, pincode));
136
    }
137
 
138
    @GetMapping("/store/order")
139
    public ResponseEntity<ApiResponse<?>> getOrderDetail(HttpServletRequest request,
140
                                                         @RequestParam(value = "id") int id,
141
                                                         @RequestParam(name = "offset") int offset,
142
                                                         @RequestParam(name = "limit") int limit) throws Throwable {
143
        return wrapResponse(storeController.getOrderDetail(request, id, offset, limit));
144
    }
145
 
146
    @GetMapping("/store/invoiceOrder")
147
    public ResponseEntity<ApiResponse<?>> getOrderInvoiceDetail(HttpServletRequest request,
148
                                                                @RequestParam(value = "id") int id,
149
                                                                @RequestParam(name = "offset") int offset,
150
                                                                @RequestParam(name = "limit") int limit) throws Throwable {
151
        return wrapResponse(storeController.getOrderInvoiceDetail(request, id, offset, limit));
152
    }
153
 
154
    @GetMapping("/store/generateInvoice")
155
    public ResponseEntity<?> generateInvoice(HttpServletRequest request,
156
                                             @RequestParam(name = "orderId") int orderId) throws Throwable {
157
        // Returns PDF binary - pass through directly, cannot wrap in ApiResponse
158
        return storeController.generateInvoice(request, orderId);
159
    }
160
 
161
    @GetMapping("/store/listing")
162
    public ResponseEntity<ApiResponse<?>> getStoresListing(HttpServletRequest request) throws Throwable {
163
        return wrapResponse(storeController.getStoresListing(request));
164
    }
165
 
166
    @GetMapping("/store/stateList")
167
    public ResponseEntity<ApiResponse<?>> getStateList(HttpServletRequest request) throws Throwable {
168
        return wrapResponse(storeController.getStateList(request));
169
    }
170
 
171
    @PostMapping("/store/cart")
172
    public ResponseEntity<ApiResponse<?>> cart(HttpServletRequest request,
173
                                               @RequestBody AddCartRequest cartRequest) throws Throwable {
174
        return wrapResponse(storeController.cart(request, cartRequest));
175
    }
176
 
177
    @GetMapping("/store/partnerStock")
36607 aman 178
    @Cacheable(value = "partnerStock", cacheManager = "fiveMintimeoutCacheManager")
36321 vikas 179
    public ResponseEntity<ApiResponse<?>> partnerStock(HttpServletRequest request,
180
                                                       @RequestParam(required = false, defaultValue = "3") String categoryId,
181
                                                       @RequestParam int offset,
182
                                                       @RequestParam int limit,
183
                                                       @RequestParam(required = false) String sort,
184
                                                       @RequestParam(required = false) String brand,
185
                                                       @RequestParam(value = "subCategoryId", required = false) int subCategoryId,
186
                                                       @RequestParam(required = false) String queryTerm,
187
                                                       @RequestParam(required = false) String listing,
188
                                                       @RequestParam(required = false, defaultValue = "true") boolean partnerStockOnly) throws Throwable {
189
        return wrapResponse(storeController.partnerStock(request, categoryId, offset, limit, sort, brand, subCategoryId, queryTerm, listing, partnerStockOnly));
190
    }
191
 
192
    @GetMapping("store/order-status/{pendingOrderId}")
193
    public ResponseEntity<ApiResponse<?>> orderStatus(HttpServletRequest request,
194
                                                      @PathVariable int pendingOrderId) throws Throwable {
195
        return wrapResponse(storeController.orderStatus(request, pendingOrderId));
196
    }
197
 
198
    @GetMapping("/store/addresses/{customerId}")
199
    public ResponseEntity<ApiResponse<?>> getAll(HttpServletRequest request,
200
                                                 @PathVariable int customerId) throws Throwable {
201
        return wrapResponse(storeController.getAll(request, customerId));
202
    }
203
 
204
    @PostMapping("/store/address")
205
    public ResponseEntity<ApiResponse<?>> addAddress(HttpServletRequest request,
206
                                                     @RequestBody CustomerAddress customerAddress) throws Throwable {
207
        return wrapResponse(storeController.addAddress(request, customerAddress));
208
    }
209
 
210
    @PostMapping("/store/deactivateCustomerAddress")
211
    public ResponseEntity<ApiResponse<?>> deactivateAddresss(HttpServletRequest request,
212
                                                             @RequestParam int id) throws Throwable {
213
        return wrapResponse(storeController.deactivateAddresss(request, id));
214
    }
215
 
216
    @PostMapping("/store/updateCustomer")
217
    public ResponseEntity<ApiResponse<?>> updateCustomerProfile(HttpServletRequest request,
218
                                                                @RequestBody Customer customer) throws Throwable {
219
        return wrapResponse(storeController.updateCustomerProfile(request, customer));
220
    }
221
 
222
    // TODO: getStoreIndex returns void and writes HTML directly to response - skipping as it's a redirect/page handler
223
    // @GetMapping("/stores/{state}/{city}/{storeCode}")
224
 
225
    @PostMapping("/cancelPendingOrderItem")
226
    public ResponseEntity<ApiResponse<?>> cancelPendingOrderItem(HttpServletRequest request,
227
                                                                 @RequestParam int id,
228
                                                                 @RequestParam String statusDescription,
229
                                                                 @RequestParam String reason) throws Throwable {
230
        return wrapResponse(storeController.cancelPendingOrderItem(request, id, statusDescription, reason));
231
    }
232
 
233
    @GetMapping("/store/checkEligibilityStoreOffers")
234
    public ResponseEntity<ApiResponse<?>> checkEligibilityStoreOffers(HttpServletRequest request,
235
                                                                      @RequestParam(value = "id") int id) throws Throwable {
236
        return wrapResponse(storeController.checkEligibilityStoreOffers(request, id));
237
    }
238
 
239
    @GetMapping("/store/ScratchOffers")
240
    public ResponseEntity<ApiResponse<?>> scratchOffers(HttpServletRequest request,
241
                                                        @RequestParam(value = "id") int id) throws Throwable {
242
        return wrapResponse(storeController.scratchOffers(request, id));
243
    }
244
 
245
    @PostMapping("/store/ScratchedOffer")
246
    public ResponseEntity<ApiResponse<?>> scratchedOffer(HttpServletRequest request,
247
                                                         @RequestParam(value = "id") int id) throws Throwable {
248
        return wrapResponse(storeController.scratchedOffer(request, id));
249
    }
250
 
251
    @GetMapping("/store/navbar")
252
    public ResponseEntity<ApiResponse<?>> navBars() throws Throwable {
253
        return wrapResponse(storeController.navBars());
254
    }
255
 
256
    @GetMapping("/getMonthSale")
257
    public ResponseEntity<ApiResponse<?>> getMonthsale(HttpServletRequest request) throws Throwable {
258
        return wrapResponse(storeController.getMonthsale(request));
259
    }
260
 
261
    @GetMapping("/getBrandwisePartnerSale")
262
    public ResponseEntity<ApiResponse<?>> getBrandwisePartnerSale(HttpServletRequest request,
263
                                                                  @RequestParam(name = "month", required = true, defaultValue = "0") int month,
264
                                                                  Model model) throws Throwable {
265
        return wrapResponse(storeController.getBrandwisePartnerSale(request, month, model));
266
    }
267
 
268
    @GetMapping("/getBrandItemwisePartnerSale")
269
    public ResponseEntity<ApiResponse<?>> getBrandItemwisePartnerSale(HttpServletRequest request,
270
                                                                      @RequestParam(name = "month", required = true, defaultValue = "0") int month,
271
                                                                      @RequestParam(name = "brand") String brand) throws Throwable {
272
        return wrapResponse(storeController.getBrandItemwisePartnerSale(request, month, brand));
273
    }
274
 
275
    @GetMapping("/store/clearance")
276
    public ResponseEntity<ApiResponse<?>> getLiquidations() throws Throwable {
277
        return wrapResponse(storeController.getLiquidations());
278
    }
279
 
280
    @PostMapping("/store/clearance/bid")
281
    public ResponseEntity<ApiResponse<?>> saveBidding(HttpServletRequest request,
282
                                                      @RequestBody BiddingModel biddingModel) throws Throwable {
283
        return wrapResponse(storeController.saveBidding(request, biddingModel));
284
    }
285
}