Subversion Repositories SmartDukaan

Rev

Rev 36482 | 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.common.enumuration.ActivationType;
4
import com.spice.profitmandi.dao.enumuration.dtr.CommunicationType;
5
import com.spice.profitmandi.dao.enumuration.dtr.FranchiseeActivityStatus;
6
import com.spice.profitmandi.dao.enumuration.dtr.FranchiseeVisitStatus;
7
import com.spice.profitmandi.dao.enumuration.dtr.LeadStatus;
8
import com.spice.profitmandi.dao.enumuration.dtr.VisitStatus;
9
import com.spice.profitmandi.dao.model.CreateRefferalRequest;
10
import com.spice.profitmandi.dao.model.PartnerTargetAchievementModel;
11
import com.spice.profitmandi.web.controller.LeadController;
12
import com.spice.profitmandi.web.req.CreateFranchiseeRequest;
13
import com.spice.profitmandi.web.req.RbmSalesRatingRequest;
14
import com.spice.profitmandi.web.v2.response.ApiResponse;
15
import org.springframework.beans.factory.annotation.Autowired;
16
import org.springframework.format.annotation.DateTimeFormat;
17
import org.springframework.http.ResponseEntity;
18
import org.springframework.ui.Model;
19
import org.springframework.web.bind.annotation.*;
20
import org.springframework.web.multipart.MultipartFile;
21
 
22
import javax.servlet.http.HttpServletRequest;
23
import java.time.LocalDateTime;
24
 
25
@RestController
26
@RequestMapping("/v2")
27
public class V2LeadController extends V2BaseController {
28
 
29
    @Autowired
30
    private LeadController leadController;
31
 
32
    @PostMapping("/lead")
33
    public ResponseEntity<ApiResponse<?>> LeadUser(@RequestBody CreateRefferalRequest createRefferalRequest) throws Throwable {
34
        return wrapResponse(leadController.LeadUser(createRefferalRequest));
35
    }
36
 
36771 ranu 37
    @GetMapping("/lead/upcoming-beats")
38
    public ResponseEntity<ApiResponse<?>> upcomingBeatsForUser(HttpServletRequest request,
39
                                                               @RequestParam(defaultValue = "30") int days) throws Throwable {
40
        return wrapResponse(leadController.upcomingBeatsForUser(request, days));
41
    }
42
 
43
    @PostMapping("/lead/schedule-on-beat")
44
    public ResponseEntity<ApiResponse<?>> scheduleLeadOnBeat(HttpServletRequest request,
45
                                                             @RequestBody java.util.Map<String, Object> req) throws Throwable {
46
        return wrapResponse(leadController.scheduleLeadOnBeat(request, req));
47
    }
48
 
36321 vikas 49
    @GetMapping("/lead-description")
50
    public ResponseEntity<ApiResponse<?>> leadDescription(HttpServletRequest request,
51
                                                          @RequestParam(name = "gmailId") String gmailId,
52
                                                          @RequestParam(name = "status") LeadStatus status) throws Throwable {
53
        return wrapResponse(leadController.leadDescription(request, gmailId, status));
54
    }
55
 
56
    @GetMapping("/getlead")
57
    public ResponseEntity<ApiResponse<?>> getLead(HttpServletRequest request,
58
                                                  @RequestParam(name = "id") int id) throws Throwable {
59
        return wrapResponse(leadController.getLead(request, id));
60
    }
61
 
62
    @GetMapping("/check-existing-lead")
63
    public ResponseEntity<ApiResponse<?>> getLeadByMobile(HttpServletRequest request,
64
                                                          @RequestParam(name = "mobile") String mobile) throws Throwable {
65
        return wrapResponse(leadController.getLeadByMobile(request, mobile));
66
    }
67
 
68
    @PostMapping("/leadUpdate")
69
    public ResponseEntity<ApiResponse<?>> leadUpdate(HttpServletRequest request,
70
                                                     @RequestParam(name = "id") int id,
71
                                                     @RequestParam(name = "status") LeadStatus status,
72
                                                     @RequestParam(name = "colorCheck") Boolean colorCheck,
73
                                                     @RequestParam(name = "remark") String remark,
74
                                                     @RequestParam(name = "reason") String reason,
75
                                                     @RequestParam(name = "schelduleTimestamp") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime schelduleTimestamp,
76
                                                     @RequestParam(name = "closureTimestamp") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime closureTimestamp,
77
                                                     @RequestParam(name = "communicationType") CommunicationType communicationType) throws Throwable {
78
        return wrapResponse(leadController.leadUpdate(request, id, status, colorCheck, remark, reason, schelduleTimestamp, closureTimestamp, communicationType));
79
    }
80
 
81
    @PostMapping("/newLead")
82
    public ResponseEntity<ApiResponse<?>> newLead(HttpServletRequest request,
83
                                                  @RequestBody CreateRefferalRequest createRefferalRequest) throws Throwable {
84
        return wrapResponse(leadController.newLead(request, createRefferalRequest));
85
    }
86
 
87
    @GetMapping("/getPartnersList")
88
    public ResponseEntity<ApiResponse<?>> getPartners(HttpServletRequest request,
89
                                                      @RequestParam(name = "gmailId") String gmailId) throws Throwable {
90
        return wrapResponse(leadController.getPartners(request, gmailId));
91
    }
92
 
93
    @PostMapping("/franchise-first-visit")
94
    public ResponseEntity<ApiResponse<?>> FranchiseFirstVisit(HttpServletRequest request,
95
                                                              @RequestBody CreateFranchiseeRequest createFranchiseeRequest) throws Throwable {
96
        return wrapResponse(leadController.FranchiseFirstVisit(request, createFranchiseeRequest));
97
    }
98
 
99
    @PostMapping("/franchise-visit")
100
    public ResponseEntity<ApiResponse<?>> FranchiseVisit(HttpServletRequest request,
101
                                                         @RequestBody CreateFranchiseeRequest createFranchiseeRequest) throws Throwable {
102
        return wrapResponse(leadController.FranchiseVisit(request, createFranchiseeRequest));
103
    }
104
 
105
    @GetMapping("/getFranchiseVisit")
106
    public ResponseEntity<ApiResponse<?>> getFranchiseVisit(HttpServletRequest request,
107
                                                            @RequestParam(name = "gmailId") String gmailId,
108
                                                            @RequestParam(name = "status") FranchiseeVisitStatus status,
109
                                                            @RequestParam(name = "offset", defaultValue = "0") int offset,
110
                                                            @RequestParam(name = "limit", defaultValue = "10") int limit) throws Throwable {
111
        return wrapResponse(leadController.getFranchiseVisit(request, gmailId, status, offset, limit));
112
    }
113
 
114
    @GetMapping("/getFranchiseActivity")
115
    public ResponseEntity<ApiResponse<?>> getFranchiseActivity(HttpServletRequest request,
116
                                                               @RequestParam(name = "id") int id) throws Throwable {
117
        return wrapResponse(leadController.getFranchiseActivity(request, id));
118
    }
119
 
120
    @GetMapping("/getFranchiseeInfo")
121
    public ResponseEntity<ApiResponse<?>> getFranchiseeInfo(HttpServletRequest request,
122
                                                            @RequestParam(name = "id") int id) throws Throwable {
123
        return wrapResponse(leadController.getFranchiseeInfo(request, id));
124
    }
125
 
126
    @PostMapping("/franchise-visit-update")
127
    public ResponseEntity<ApiResponse<?>> franchiseVisitUpdate(HttpServletRequest request,
128
                                                               @RequestParam(name = "id") int id,
129
                                                               @RequestParam(name = "action") FranchiseeActivityStatus action,
130
                                                               @RequestParam(name = "resolution") String resolution,
131
                                                               @RequestParam(name = "schelduleTimestamp") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime schelduleTimestamp) throws Throwable {
132
        return wrapResponse(leadController.franchiseVisitUpdate(request, id, action, resolution, schelduleTimestamp));
133
    }
134
 
135
    @GetMapping("/onBoardingTimelineStatus")
136
    public ResponseEntity<ApiResponse<?>> onBoardingTimelineStatus(HttpServletRequest request, Model model) throws Throwable {
137
        return wrapResponse(leadController.onBoardingTimelineStatus(request, model));
138
    }
139
 
140
    @GetMapping("/purchaseExist")
141
    public ResponseEntity<ApiResponse<?>> purchaseExist(HttpServletRequest request) throws Throwable {
142
        return wrapResponse(leadController.purchaseExist(request));
143
    }
144
 
145
    @GetMapping("/onBoardingTimelineVisibility")
146
    public ResponseEntity<ApiResponse<?>> onBoardingTimelineVisibility(HttpServletRequest request, Model model) throws Throwable {
147
        return wrapResponse(leadController.onBoardingTimelineVisibility(request, model));
148
    }
149
 
150
    @GetMapping("/getPartnerTarget")
151
    public ResponseEntity<ApiResponse<?>> getPartnerTarget(HttpServletRequest request,
152
                                                           @RequestParam String gmailId,
153
                                                           @RequestParam String dayValue,
154
                                                           @RequestParam ActivationType activationType) throws Throwable {
155
        return wrapResponse(leadController.getPartnerTarget(request, gmailId, dayValue, activationType));
156
    }
157
 
158
    @GetMapping("/getInactivePartnerTarget")
159
    public ResponseEntity<ApiResponse<?>> getInactivePartnerTarget(HttpServletRequest request,
160
                                                                    @RequestParam String gmailId,
161
                                                                    @RequestParam String dayValue,
162
                                                                    @RequestParam ActivationType activationType) throws Throwable {
163
        return wrapResponse(leadController.getInactivePartnerTarget(request, gmailId, dayValue, activationType));
164
    }
165
 
166
    @PostMapping("/target")
167
    public ResponseEntity<ApiResponse<?>> createPartnerTarget(HttpServletRequest request,
168
                                                              @RequestBody PartnerTargetAchievementModel ptam) throws Throwable {
169
        return wrapResponse(leadController.createPartnerTarget(request, ptam));
170
    }
171
 
172
    @PostMapping("/uploadFranchiseeVisit")
173
    public ResponseEntity<ApiResponse<?>> readCsvFileAndSetLead(HttpServletRequest request,
174
                                                                @RequestPart MultipartFile multipartFile) throws Throwable {
175
        return wrapResponse(leadController.readCsvFileAndSetLead(request, multipartFile));
176
    }
177
 
178
    @GetMapping("/downloadFranchiseeVisitTemplate")
179
    public ResponseEntity<?> downloadFranchiseeVisitTemplate(HttpServletRequest request) throws Throwable {
180
        // Returns byte[] with CSV headers - pass through directly, cannot wrap
181
        return leadController.downloadFranchiseeVisitTemplate(request);
182
    }
183
 
184
    @PostMapping("/markVisitAttendance")
185
    public ResponseEntity<ApiResponse<?>> markVisitAttendance(HttpServletRequest request,
186
                                                              @RequestParam(name = "id") int id) throws Throwable {
187
        return wrapResponse(leadController.markVisitAttendance(request, id));
188
    }
189
 
190
    @GetMapping("/getVisitRequests")
191
    public ResponseEntity<ApiResponse<?>> getVisitRequests(HttpServletRequest request,
192
                                                           @RequestParam(name = "gmailId") String gmailId,
193
                                                           Model model) throws Throwable {
194
        return wrapResponse(leadController.getVisitRequests(request, gmailId, model));
195
    }
196
 
197
    @PostMapping("/visitRequest")
198
    public ResponseEntity<ApiResponse<?>> visitRequest(HttpServletRequest request,
199
                                                       @RequestParam(name = "gmailId") String gmailId,
200
                                                       @RequestParam(name = "visitId") int visitId,
201
                                                       @RequestParam(name = "status") VisitStatus status,
202
                                                       Model model) throws Throwable {
203
        return wrapResponse(leadController.visitRequest(request, gmailId, visitId, status, model));
204
    }
205
 
206
    @PostMapping("/rbmRating")
207
    public ResponseEntity<ApiResponse<?>> rbmRating(HttpServletRequest request,
208
                                                    @RequestBody RbmSalesRatingRequest rbmSalesRatingRequest,
209
                                                    Model model) throws Throwable {
210
        return wrapResponse(leadController.rbmRating(request, rbmSalesRatingRequest, model));
211
    }
36482 vikas 212
 
213
    @GetMapping("/rbmRating/weekly-status")
214
    public ResponseEntity<ApiResponse<?>> rbmRatingWeeklyStatus(HttpServletRequest request) throws Throwable {
215
        return wrapResponse(leadController.rbmRatingWeeklyStatus(request));
216
    }
217
 
218
    @GetMapping("/rbmRating/reminder")
219
    public ResponseEntity<ApiResponse<?>> rbmRatingReminder(HttpServletRequest request) throws Throwable {
220
        return wrapResponse(leadController.rbmRatingReminder(request));
221
    }
36321 vikas 222
}