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.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 {
101
        return wrapResponse(dealsController.getUnitFocoDeal(request, id));
102
    }
103
 
104
    @PostMapping("/suggestedPoDeals")
105
    public ResponseEntity<ApiResponse<?>> suggestedPoDeals(HttpServletRequest request,
106
                                                           @RequestBody Set<Integer> catalogIds) throws Throwable {
107
        return wrapResponse(dealsController.suggestedPoDeals(request, catalogIds));
108
    }
109
 
110
    @GetMapping("/fofo/brands")
111
    public ResponseEntity<ApiResponse<?>> getBrandsToDisplay(HttpServletRequest request,
112
                                                             @RequestParam(required = false, defaultValue = "0") int categoryId) throws Throwable {
113
        return wrapResponse(dealsController.getBrandsToDisplay(request, categoryId));
114
    }
115
 
116
    @GetMapping("/fofo/brandCatalog")
117
    public ResponseEntity<ApiResponse<?>> getBrandCatalog(HttpServletRequest request,
118
                                                          @RequestParam(required = false, defaultValue = "0") int categoryId) throws Throwable {
119
        return wrapResponse(dealsController.getBrands(request, categoryId));
120
    }
121
 
122
    @GetMapping("/fofo/accessory/all-categories")
123
    public ResponseEntity<ApiResponse<?>> getSubCategoriesToDisplay(HttpServletRequest request) throws Throwable {
124
        return wrapResponse(dealsController.getSubCategoriesToDisplay(request));
125
    }
126
 
127
    @GetMapping("/fofo/categories")
128
    public ResponseEntity<ApiResponse<?>> getFofoCategories() throws Throwable {
129
        return wrapResponse(dealsController.getFofoCategories());
130
    }
131
 
132
    @GetMapping("/banners/{bannerType}")
133
    public ResponseEntity<ApiResponse<?>> getBanners(@PathVariable String bannerType) throws Throwable {
134
        return wrapResponse(dealsController.getBanners(bannerType));
135
    }
136
 
137
    @GetMapping("/deals/subCategories")
138
    public ResponseEntity<ApiResponse<?>> getSubcategoriesToDisplay() throws Throwable {
139
        return wrapResponse(dealsController.getSubcategoriesToDisplay());
140
    }
141
 
142
    @GetMapping("/deals/skus/{skus}")
143
    public ResponseEntity<ApiResponse<?>> getDealsBySkus(@PathVariable String skus) throws Throwable {
144
        return wrapResponse(dealsController.getDealsBySkus(skus));
145
    }
146
 
147
    @GetMapping("/partner/listing")
148
    public ResponseEntity<ApiResponse<?>> getPartnersListing(HttpServletRequest request) throws Throwable {
149
        return wrapResponse(dealsController.getPartnersListing(request));
150
    }
151
 
152
    @GetMapping("/combo")
153
    public ResponseEntity<ApiResponse<?>> getCombo(@RequestParam int catalogId,
154
                                                   @RequestParam int warehouseId) throws Throwable {
155
        return wrapResponse(dealsController.getBanners(catalogId, warehouseId));
156
    }
157
 
158
    @GetMapping("/checkCombo")
159
    public ResponseEntity<ApiResponse<?>> checkCombo(HttpServletRequest request,
160
                                                     @RequestParam int catalogId,
161
                                                     @RequestParam int warehouseId,
162
                                                     @RequestParam int qty) throws Throwable {
163
        return wrapResponse(dealsController.checkCombo(request, catalogId, warehouseId, qty));
164
    }
165
 
166
    @GetMapping("/partner/wodCompleteBrands")
167
    public ResponseEntity<ApiResponse<?>> getWodcompletBrands(HttpServletRequest request) throws Throwable {
168
        return wrapResponse(dealsController.getWodcompletBrands(request));
169
    }
170
 
171
    @PostMapping("/pinelabs/offers")
172
    public ResponseEntity<ApiResponse<?>> getPineLabsOffers(@RequestBody OfferDiscoveryRequest offerDiscoveryRequest) throws Throwable {
173
        return wrapResponse(dealsController.getPineLabsOffers(offerDiscoveryRequest));
174
    }
175
 
176
    @GetMapping("/pinelabs/offers/cache")
177
    public ResponseEntity<ApiResponse<?>> cachePineLabsOffers() throws Throwable {
178
        return wrapResponse(dealsController.cachePineLabsOffers());
179
    }
180
 
181
    @GetMapping("/pinelabs/offers/{itemId}")
182
    public ResponseEntity<ApiResponse<?>> pineLabsOfferById(@PathVariable int itemId) throws Throwable {
183
        return wrapResponse(dealsController.pineLabsOfferById(itemId));
184
    }
185
}