Subversion Repositories SmartDukaan

Rev

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