Subversion Repositories SmartDukaan

Rev

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