Subversion Repositories SmartDukaan

Rev

Rev 36538 | Go to most recent revision | 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
 
36591 vikas 3
import com.spice.profitmandi.service.integrations.pinelabs.dto.DownpaymentDetailsRequest;
36321 vikas 4
import com.spice.profitmandi.service.integrations.pinelabs.dto.OfferDiscoveryRequest;
36591 vikas 5
import com.spice.profitmandi.service.integrations.pinelabs.dto.OfferValidateRequest;
6
import com.spice.profitmandi.service.integrations.pinelabs.dto.PineLablsCreateOfferRequest;
36321 vikas 7
import com.spice.profitmandi.web.controller.DealsController;
8
import com.spice.profitmandi.web.v2.response.ApiResponse;
9
import org.springframework.beans.factory.annotation.Autowired;
10
import org.springframework.http.ResponseEntity;
11
import org.springframework.web.bind.annotation.*;
12
 
13
import javax.servlet.http.HttpServletRequest;
36591 vikas 14
import java.util.Map;
36321 vikas 15
import java.util.Set;
16
 
17
@RestController
18
@RequestMapping("/v2")
19
public class V2DealsController extends V2BaseController {
20
 
21
    @Autowired
22
    private DealsController dealsController;
23
 
24
    @GetMapping("/fofo/buckets")
25
    public ResponseEntity<ApiResponse<?>> getBuckets(HttpServletRequest request) throws Throwable {
26
        return wrapResponse(dealsController.getBuckets(request));
27
    }
28
 
29
    @GetMapping("/fofo/bucket")
30
    public ResponseEntity<ApiResponse<?>> getBucketDetails(HttpServletRequest request,
31
                                                           @RequestParam int id) throws Throwable {
32
        return wrapResponse(dealsController.getBucketDetails(request, id));
33
    }
34
 
35
    @GetMapping("/fofo/suggestedPo")
36
    public ResponseEntity<ApiResponse<?>> getSuggestedPo(HttpServletRequest request,
37
                                                         @RequestParam int id) throws Throwable {
38
        return wrapResponse(dealsController.getSuggestedPo(request, id));
39
    }
40
 
41
    @GetMapping("/suggestedPo/status")
42
    public ResponseEntity<ApiResponse<?>> changeSuggestedPoStatus(HttpServletRequest request,
43
                                                                   @RequestParam int id) throws Throwable {
44
        return wrapResponse(dealsController.changeSuggestedPoStatus(request, id));
45
    }
46
 
47
    @GetMapping("/fofo/fovourites")
48
    public ResponseEntity<ApiResponse<?>> getFavourites(HttpServletRequest request) throws Throwable {
49
        return wrapResponse(dealsController.getFavourites(request));
50
    }
51
 
52
    @PostMapping("/favourites/manage")
53
    public ResponseEntity<ApiResponse<?>> mangeFavourites(HttpServletRequest request,
54
                                                          @RequestParam int catalogId) throws Throwable {
55
        return wrapResponse(dealsController.mangeFavourites(request, catalogId));
56
    }
57
 
58
    @GetMapping("/fofo/similar-models/{modelId}")
59
    public ResponseEntity<ApiResponse<?>> similarModels(HttpServletRequest request,
60
                                                        @PathVariable int modelId) throws Throwable {
61
        return wrapResponse(dealsController.similarModels(request, modelId));
62
    }
63
 
64
    @GetMapping("/fofo")
65
    public ResponseEntity<ApiResponse<?>> getFofo(HttpServletRequest request,
66
                                                  @RequestParam(value = "categoryId", required = false, defaultValue = "3") String categoryId,
67
                                                  @RequestParam(value = "offset") int offset,
68
                                                  @RequestParam(value = "limit") int limit,
69
                                                  @RequestParam(value = "sort", required = false) String sort,
70
                                                  @RequestParam(value = "brand", required = false) String brand,
71
                                                  @RequestParam(value = "subCategoryId", required = false) int subCategoryId,
72
                                                  @RequestParam(value = "q", required = false) String queryTerm,
73
                                                  @RequestParam(value = "hotDeal", required = false) boolean hotDeal,
74
                                                  @RequestParam(value = "endPoint", required = false) String endPoint,
75
                                                  @RequestParam(value = "group", required = false) boolean group) throws Throwable {
76
        return wrapResponse(dealsController.getFofo(request, categoryId, offset, limit, sort, brand, subCategoryId, queryTerm, hotDeal, endPoint, group));
77
    }
78
 
79
    @GetMapping("/online-deals")
80
    public ResponseEntity<ApiResponse<?>> getOnlineDeals(HttpServletRequest request,
81
                                                         @RequestParam(value = "categoryId") String categoryId,
82
                                                         @RequestParam(value = "offset") String offset,
83
                                                         @RequestParam(value = "limit") String limit,
84
                                                         @RequestParam(value = "sort", required = false) String sort,
85
                                                         @RequestParam(value = "direction", required = false) String direction,
86
                                                         @RequestParam(value = "filterData", required = false) String filterData) throws Throwable {
87
        return wrapResponse(dealsController.getOnlineDeals(request, categoryId, offset, limit, sort, direction, filterData));
88
    }
89
 
90
    @GetMapping("/brands")
91
    public ResponseEntity<ApiResponse<?>> getBrands(HttpServletRequest request,
92
                                                    @RequestParam(value = "category_id") String category_id) throws Throwable {
93
        return wrapResponse(dealsController.getBrands(request, category_id));
94
    }
95
 
96
    @GetMapping("/deals/{id}")
97
    public ResponseEntity<ApiResponse<?>> getUnitDeal(HttpServletRequest request,
98
                                                      @PathVariable(value = "id") long id) throws Throwable {
99
        return wrapResponse(dealsController.getUnitDeal(request, id));
100
    }
101
 
102
    @GetMapping("/partnerdeals/{id}")
103
    public ResponseEntity<ApiResponse<?>> getUnitFocoDeal(HttpServletRequest request,
104
                                                          @PathVariable(value = "id") long id) throws Throwable {
36538 ranu 105
        try {
106
            return wrapResponse(dealsController.getUnitFocoDeal(request, id));
107
        } catch (IndexOutOfBoundsException e) {
108
            java.util.Map<String, Object> err = new java.util.HashMap<>();
109
            err.put("message", "Product not found for catalogId: " + id);
110
            return ResponseEntity.status(404).body(ApiResponse.success(err));
111
        }
36321 vikas 112
    }
113
 
114
    @PostMapping("/suggestedPoDeals")
115
    public ResponseEntity<ApiResponse<?>> suggestedPoDeals(HttpServletRequest request,
116
                                                           @RequestBody Set<Integer> catalogIds) throws Throwable {
117
        return wrapResponse(dealsController.suggestedPoDeals(request, catalogIds));
118
    }
119
 
120
    @GetMapping("/fofo/brands")
121
    public ResponseEntity<ApiResponse<?>> getBrandsToDisplay(HttpServletRequest request,
122
                                                             @RequestParam(required = false, defaultValue = "0") int categoryId) throws Throwable {
123
        return wrapResponse(dealsController.getBrandsToDisplay(request, categoryId));
124
    }
125
 
126
    @GetMapping("/fofo/brandCatalog")
127
    public ResponseEntity<ApiResponse<?>> getBrandCatalog(HttpServletRequest request,
128
                                                          @RequestParam(required = false, defaultValue = "0") int categoryId) throws Throwable {
129
        return wrapResponse(dealsController.getBrands(request, categoryId));
130
    }
131
 
132
    @GetMapping("/fofo/accessory/all-categories")
133
    public ResponseEntity<ApiResponse<?>> getSubCategoriesToDisplay(HttpServletRequest request) throws Throwable {
134
        return wrapResponse(dealsController.getSubCategoriesToDisplay(request));
135
    }
136
 
137
    @GetMapping("/fofo/categories")
138
    public ResponseEntity<ApiResponse<?>> getFofoCategories() throws Throwable {
139
        return wrapResponse(dealsController.getFofoCategories());
140
    }
141
 
142
    @GetMapping("/banners/{bannerType}")
143
    public ResponseEntity<ApiResponse<?>> getBanners(@PathVariable String bannerType) throws Throwable {
144
        return wrapResponse(dealsController.getBanners(bannerType));
145
    }
146
 
147
    @GetMapping("/deals/subCategories")
148
    public ResponseEntity<ApiResponse<?>> getSubcategoriesToDisplay() throws Throwable {
149
        return wrapResponse(dealsController.getSubcategoriesToDisplay());
150
    }
151
 
152
    @GetMapping("/deals/skus/{skus}")
153
    public ResponseEntity<ApiResponse<?>> getDealsBySkus(@PathVariable String skus) throws Throwable {
154
        return wrapResponse(dealsController.getDealsBySkus(skus));
155
    }
156
 
157
    @GetMapping("/partner/listing")
158
    public ResponseEntity<ApiResponse<?>> getPartnersListing(HttpServletRequest request) throws Throwable {
159
        return wrapResponse(dealsController.getPartnersListing(request));
160
    }
161
 
162
    @GetMapping("/combo")
163
    public ResponseEntity<ApiResponse<?>> getCombo(@RequestParam int catalogId,
164
                                                   @RequestParam int warehouseId) throws Throwable {
165
        return wrapResponse(dealsController.getBanners(catalogId, warehouseId));
166
    }
167
 
168
    @GetMapping("/checkCombo")
169
    public ResponseEntity<ApiResponse<?>> checkCombo(HttpServletRequest request,
170
                                                     @RequestParam int catalogId,
171
                                                     @RequestParam int warehouseId,
172
                                                     @RequestParam int qty) throws Throwable {
173
        return wrapResponse(dealsController.checkCombo(request, catalogId, warehouseId, qty));
174
    }
175
 
176
    @GetMapping("/partner/wodCompleteBrands")
177
    public ResponseEntity<ApiResponse<?>> getWodcompletBrands(HttpServletRequest request) throws Throwable {
178
        return wrapResponse(dealsController.getWodcompletBrands(request));
179
    }
180
 
181
    @PostMapping("/pinelabs/offers")
182
    public ResponseEntity<ApiResponse<?>> getPineLabsOffers(@RequestBody OfferDiscoveryRequest offerDiscoveryRequest) throws Throwable {
183
        return wrapResponse(dealsController.getPineLabsOffers(offerDiscoveryRequest));
184
    }
185
 
186
    @GetMapping("/pinelabs/offers/cache")
187
    public ResponseEntity<ApiResponse<?>> cachePineLabsOffers() throws Throwable {
188
        return wrapResponse(dealsController.cachePineLabsOffers());
189
    }
190
 
191
    @GetMapping("/pinelabs/offers/{itemId}")
192
    public ResponseEntity<ApiResponse<?>> pineLabsOfferById(@PathVariable int itemId) throws Throwable {
193
        return wrapResponse(dealsController.pineLabsOfferById(itemId));
194
    }
36591 vikas 195
 
196
    @PostMapping("/pinelabs/offers/downpayment")
197
    public ResponseEntity<ApiResponse<?>> getPineLabsDownpaymentDetails(@RequestBody DownpaymentDetailsRequest request) throws Throwable {
198
        return wrapResponse(dealsController.getPineLabsDownpaymentDetails(request));
199
    }
200
 
201
    @PostMapping("/pinelabs/offers/cardless")
202
    public ResponseEntity<ApiResponse<?>> getPineLabsCardlessOffers(@RequestBody OfferDiscoveryRequest offerDiscoveryRequest) throws Throwable {
203
        return wrapResponse(dealsController.getPineLabsCardlessOffers(offerDiscoveryRequest));
204
    }
205
 
206
    @PostMapping("/pinelabs/offers/validate")
207
    public ResponseEntity<ApiResponse<?>> validatePineLabsOffer(@RequestBody OfferValidateRequest request) throws Throwable {
208
        return wrapResponse(dealsController.validatePineLabsOffer(request));
209
    }
210
 
211
    @PostMapping("/pinelabs/offers/create")
212
    public ResponseEntity<ApiResponse<?>> createPineLabsOffer(@RequestBody PineLablsCreateOfferRequest request) throws Throwable {
213
        return wrapResponse(dealsController.createPineLabsOffer(request));
214
    }
215
 
216
    @PostMapping("/pinelabs/imei/{orderId}")
217
    public ResponseEntity<ApiResponse<?>> validateImei(@PathVariable String orderId, @RequestBody Map<String, String> body) throws Throwable {
218
        return wrapResponse(dealsController.validateImei(orderId, body));
219
    }
36321 vikas 220
}