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.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
 
37
    @GetMapping("/lead-description")
38
    public ResponseEntity<ApiResponse<?>> leadDescription(HttpServletRequest request,
39
                                                          @RequestParam(name = "gmailId") String gmailId,
40
                                                          @RequestParam(name = "status") LeadStatus status) throws Throwable {
41
        return wrapResponse(leadController.leadDescription(request, gmailId, status));
42
    }
43
 
44
    @GetMapping("/getlead")
45
    public ResponseEntity<ApiResponse<?>> getLead(HttpServletRequest request,
46
                                                  @RequestParam(name = "id") int id) throws Throwable {
47
        return wrapResponse(leadController.getLead(request, id));
48
    }
49
 
50
    @GetMapping("/check-existing-lead")
51
    public ResponseEntity<ApiResponse<?>> getLeadByMobile(HttpServletRequest request,
52
                                                          @RequestParam(name = "mobile") String mobile) throws Throwable {
53
        return wrapResponse(leadController.getLeadByMobile(request, mobile));
54
    }
55
 
56
    @PostMapping("/leadUpdate")
57
    public ResponseEntity<ApiResponse<?>> leadUpdate(HttpServletRequest request,
58
                                                     @RequestParam(name = "id") int id,
59
                                                     @RequestParam(name = "status") LeadStatus status,
60
                                                     @RequestParam(name = "colorCheck") Boolean colorCheck,
61
                                                     @RequestParam(name = "remark") String remark,
62
                                                     @RequestParam(name = "reason") String reason,
63
                                                     @RequestParam(name = "schelduleTimestamp") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime schelduleTimestamp,
64
                                                     @RequestParam(name = "closureTimestamp") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime closureTimestamp,
65
                                                     @RequestParam(name = "communicationType") CommunicationType communicationType) throws Throwable {
66
        return wrapResponse(leadController.leadUpdate(request, id, status, colorCheck, remark, reason, schelduleTimestamp, closureTimestamp, communicationType));
67
    }
68
 
69
    @PostMapping("/newLead")
70
    public ResponseEntity<ApiResponse<?>> newLead(HttpServletRequest request,
71
                                                  @RequestBody CreateRefferalRequest createRefferalRequest) throws Throwable {
72
        return wrapResponse(leadController.newLead(request, createRefferalRequest));
73
    }
74
 
75
    @GetMapping("/getPartnersList")
76
    public ResponseEntity<ApiResponse<?>> getPartners(HttpServletRequest request,
77
                                                      @RequestParam(name = "gmailId") String gmailId) throws Throwable {
78
        return wrapResponse(leadController.getPartners(request, gmailId));
79
    }
80
 
81
    @PostMapping("/franchise-first-visit")
82
    public ResponseEntity<ApiResponse<?>> FranchiseFirstVisit(HttpServletRequest request,
83
                                                              @RequestBody CreateFranchiseeRequest createFranchiseeRequest) throws Throwable {
84
        return wrapResponse(leadController.FranchiseFirstVisit(request, createFranchiseeRequest));
85
    }
86
 
87
    @PostMapping("/franchise-visit")
88
    public ResponseEntity<ApiResponse<?>> FranchiseVisit(HttpServletRequest request,
89
                                                         @RequestBody CreateFranchiseeRequest createFranchiseeRequest) throws Throwable {
90
        return wrapResponse(leadController.FranchiseVisit(request, createFranchiseeRequest));
91
    }
92
 
93
    @GetMapping("/getFranchiseVisit")
94
    public ResponseEntity<ApiResponse<?>> getFranchiseVisit(HttpServletRequest request,
95
                                                            @RequestParam(name = "gmailId") String gmailId,
96
                                                            @RequestParam(name = "status") FranchiseeVisitStatus status,
97
                                                            @RequestParam(name = "offset", defaultValue = "0") int offset,
98
                                                            @RequestParam(name = "limit", defaultValue = "10") int limit) throws Throwable {
99
        return wrapResponse(leadController.getFranchiseVisit(request, gmailId, status, offset, limit));
100
    }
101
 
102
    @GetMapping("/getFranchiseActivity")
103
    public ResponseEntity<ApiResponse<?>> getFranchiseActivity(HttpServletRequest request,
104
                                                               @RequestParam(name = "id") int id) throws Throwable {
105
        return wrapResponse(leadController.getFranchiseActivity(request, id));
106
    }
107
 
108
    @GetMapping("/getFranchiseeInfo")
109
    public ResponseEntity<ApiResponse<?>> getFranchiseeInfo(HttpServletRequest request,
110
                                                            @RequestParam(name = "id") int id) throws Throwable {
111
        return wrapResponse(leadController.getFranchiseeInfo(request, id));
112
    }
113
 
114
    @PostMapping("/franchise-visit-update")
115
    public ResponseEntity<ApiResponse<?>> franchiseVisitUpdate(HttpServletRequest request,
116
                                                               @RequestParam(name = "id") int id,
117
                                                               @RequestParam(name = "action") FranchiseeActivityStatus action,
118
                                                               @RequestParam(name = "resolution") String resolution,
119
                                                               @RequestParam(name = "schelduleTimestamp") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime schelduleTimestamp) throws Throwable {
120
        return wrapResponse(leadController.franchiseVisitUpdate(request, id, action, resolution, schelduleTimestamp));
121
    }
122
 
123
    @GetMapping("/onBoardingTimelineStatus")
124
    public ResponseEntity<ApiResponse<?>> onBoardingTimelineStatus(HttpServletRequest request, Model model) throws Throwable {
125
        return wrapResponse(leadController.onBoardingTimelineStatus(request, model));
126
    }
127
 
128
    @GetMapping("/purchaseExist")
129
    public ResponseEntity<ApiResponse<?>> purchaseExist(HttpServletRequest request) throws Throwable {
130
        return wrapResponse(leadController.purchaseExist(request));
131
    }
132
 
133
    @GetMapping("/onBoardingTimelineVisibility")
134
    public ResponseEntity<ApiResponse<?>> onBoardingTimelineVisibility(HttpServletRequest request, Model model) throws Throwable {
135
        return wrapResponse(leadController.onBoardingTimelineVisibility(request, model));
136
    }
137
 
138
    @GetMapping("/getPartnerTarget")
139
    public ResponseEntity<ApiResponse<?>> getPartnerTarget(HttpServletRequest request,
140
                                                           @RequestParam String gmailId,
141
                                                           @RequestParam String dayValue,
142
                                                           @RequestParam ActivationType activationType) throws Throwable {
143
        return wrapResponse(leadController.getPartnerTarget(request, gmailId, dayValue, activationType));
144
    }
145
 
146
    @GetMapping("/getInactivePartnerTarget")
147
    public ResponseEntity<ApiResponse<?>> getInactivePartnerTarget(HttpServletRequest request,
148
                                                                    @RequestParam String gmailId,
149
                                                                    @RequestParam String dayValue,
150
                                                                    @RequestParam ActivationType activationType) throws Throwable {
151
        return wrapResponse(leadController.getInactivePartnerTarget(request, gmailId, dayValue, activationType));
152
    }
153
 
154
    @PostMapping("/target")
155
    public ResponseEntity<ApiResponse<?>> createPartnerTarget(HttpServletRequest request,
156
                                                              @RequestBody PartnerTargetAchievementModel ptam) throws Throwable {
157
        return wrapResponse(leadController.createPartnerTarget(request, ptam));
158
    }
159
 
160
    @PostMapping("/uploadFranchiseeVisit")
161
    public ResponseEntity<ApiResponse<?>> readCsvFileAndSetLead(HttpServletRequest request,
162
                                                                @RequestPart MultipartFile multipartFile) throws Throwable {
163
        return wrapResponse(leadController.readCsvFileAndSetLead(request, multipartFile));
164
    }
165
 
166
    @GetMapping("/downloadFranchiseeVisitTemplate")
167
    public ResponseEntity<?> downloadFranchiseeVisitTemplate(HttpServletRequest request) throws Throwable {
168
        // Returns byte[] with CSV headers - pass through directly, cannot wrap
169
        return leadController.downloadFranchiseeVisitTemplate(request);
170
    }
171
 
172
    @PostMapping("/markVisitAttendance")
173
    public ResponseEntity<ApiResponse<?>> markVisitAttendance(HttpServletRequest request,
174
                                                              @RequestParam(name = "id") int id) throws Throwable {
175
        return wrapResponse(leadController.markVisitAttendance(request, id));
176
    }
177
 
178
    @GetMapping("/getVisitRequests")
179
    public ResponseEntity<ApiResponse<?>> getVisitRequests(HttpServletRequest request,
180
                                                           @RequestParam(name = "gmailId") String gmailId,
181
                                                           Model model) throws Throwable {
182
        return wrapResponse(leadController.getVisitRequests(request, gmailId, model));
183
    }
184
 
185
    @PostMapping("/visitRequest")
186
    public ResponseEntity<ApiResponse<?>> visitRequest(HttpServletRequest request,
187
                                                       @RequestParam(name = "gmailId") String gmailId,
188
                                                       @RequestParam(name = "visitId") int visitId,
189
                                                       @RequestParam(name = "status") VisitStatus status,
190
                                                       Model model) throws Throwable {
191
        return wrapResponse(leadController.visitRequest(request, gmailId, visitId, status, model));
192
    }
193
 
194
    @PostMapping("/rbmRating")
195
    public ResponseEntity<ApiResponse<?>> rbmRating(HttpServletRequest request,
196
                                                    @RequestBody RbmSalesRatingRequest rbmSalesRatingRequest,
197
                                                    Model model) throws Throwable {
198
        return wrapResponse(leadController.rbmRating(request, rbmSalesRatingRequest, model));
199
    }
200
}