@@ -18,8 +18,6 @@ import (
18
18
"application/core"
19
19
"application/core/model"
20
20
"encoding/json"
21
- "io/ioutil"
22
- "log"
23
21
"net/http"
24
22
"strconv"
25
23
"strings"
@@ -57,25 +55,7 @@ func (h ClientAPIsHandler) getSurvey(l *logs.Log, r *http.Request, claims *token
57
55
}
58
56
59
57
func (h ClientAPIsHandler ) getSurveys (l * logs.Log , r * http.Request , claims * tokenauth.Claims ) logs.HTTPResponse {
60
- data , err := ioutil .ReadAll (r .Body )
61
- if err != nil {
62
- return l .HTTPResponseErrorAction (logutils .ActionRead , logutils .TypeRequestBody , nil , err , http .StatusBadRequest , false )
63
- }
64
58
65
- var items * model.SurveyTimeFilterRequest
66
- // If the body is empty or only contains whitespace, treat it as nil
67
- if len (data ) == 0 {
68
- log .Println ("Request body is empty, proceeding with default behavior." )
69
- items = & model.SurveyTimeFilterRequest {StartTimeBefore : nil , StartTimeAfter : nil , EndTimeAfter : nil , EndTimeBefore : nil }
70
- } else {
71
- // Unmarshal the data into the items struct
72
- err = json .Unmarshal (data , & items )
73
- if err != nil {
74
- log .Printf ("Error unmarshaling request body: %v" , err )
75
- return l .HTTPResponseErrorAction (logutils .ActionGet , model .TypeSurvey , nil , err , http .StatusInternalServerError , true )
76
- }
77
- }
78
- filter := surveyTimeFilter (items )
79
59
surveyIDsRaw := r .URL .Query ().Get ("ids" )
80
60
var surveyIDs []string
81
61
if len (surveyIDsRaw ) > 0 {
@@ -144,6 +124,25 @@ func (h ClientAPIsHandler) getSurveys(l *logs.Log, r *http.Request, claims *toke
144
124
completed = & valueCompleted
145
125
}
146
126
127
+ var timeFilterItems model.SurveyTimeFilterRequest
128
+ startsBeforeRaw := r .URL .Query ().Get ("starts_before" )
129
+ if startsBeforeRaw != "" {
130
+ timeFilterItems .StartTimeBefore = & startsBeforeRaw
131
+ }
132
+ startsAfterRaw := r .URL .Query ().Get ("starts_after" )
133
+ if startsAfterRaw != "" {
134
+ timeFilterItems .StartTimeAfter = & startsAfterRaw
135
+ }
136
+ endsBeforeRaw := r .URL .Query ().Get ("ends_before" )
137
+ if endsBeforeRaw != "" {
138
+ timeFilterItems .EndTimeBefore = & endsBeforeRaw
139
+ }
140
+ endsAfterRaw := r .URL .Query ().Get ("ends_after" )
141
+ if endsAfterRaw != "" {
142
+ timeFilterItems .EndTimeAfter = & endsAfterRaw
143
+ }
144
+ filter := surveyTimeFilter (& timeFilterItems )
145
+
147
146
surveys , surverysRsponse , err := h .app .Client .GetSurveys (claims .OrgID , claims .AppID , & claims .Subject , nil , surveyIDs , surveyTypes , calendarEventID ,
148
147
& limit , & offset , filter , public , archived , completed )
149
148
if err != nil {
@@ -520,7 +519,62 @@ func (h ClientAPIsHandler) getCreatorSurveys(l *logs.Log, r *http.Request, claim
520
519
offset = intParsed
521
520
}
522
521
523
- resData , _ , err := h .app .Client .GetSurveys (claims .OrgID , claims .AppID , & claims .Subject , & claims .Subject , surveyIDs , surveyTypes , "" , & limit , & offset , nil , nil , nil , nil )
522
+ publicStr := r .URL .Query ().Get ("public" )
523
+
524
+ var public * bool
525
+
526
+ if publicStr != "" {
527
+ valuePublic , err := strconv .ParseBool (publicStr )
528
+ if err != nil {
529
+ return l .HTTPResponseErrorAction (logutils .ActionGet , model .TypeSurvey , nil , err , http .StatusInternalServerError , true )
530
+ }
531
+ public = & valuePublic
532
+ }
533
+
534
+ archivedStr := r .URL .Query ().Get ("archived" )
535
+
536
+ var archived * bool
537
+
538
+ if archivedStr != "" {
539
+ valueArchived , err := strconv .ParseBool (archivedStr )
540
+ if err != nil {
541
+ return l .HTTPResponseErrorAction (logutils .ActionGet , model .TypeSurvey , nil , err , http .StatusInternalServerError , true )
542
+ }
543
+ archived = & valueArchived
544
+ }
545
+
546
+ completedStr := r .URL .Query ().Get ("completed" )
547
+
548
+ var completed * bool
549
+
550
+ if completedStr != "" {
551
+ valueCompleted , err := strconv .ParseBool (completedStr )
552
+ if err != nil {
553
+ return l .HTTPResponseErrorAction (logutils .ActionGet , model .TypeSurvey , nil , err , http .StatusInternalServerError , true )
554
+ }
555
+ completed = & valueCompleted
556
+ }
557
+
558
+ var timeFilterItems model.SurveyTimeFilterRequest
559
+ startsBeforeRaw := r .URL .Query ().Get ("starts_before" )
560
+ if startsBeforeRaw != "" {
561
+ timeFilterItems .StartTimeBefore = & startsBeforeRaw
562
+ }
563
+ startsAfterRaw := r .URL .Query ().Get ("starts_after" )
564
+ if startsAfterRaw != "" {
565
+ timeFilterItems .StartTimeAfter = & startsAfterRaw
566
+ }
567
+ endsBeforeRaw := r .URL .Query ().Get ("ends_before" )
568
+ if endsBeforeRaw != "" {
569
+ timeFilterItems .EndTimeBefore = & endsBeforeRaw
570
+ }
571
+ endsAfterRaw := r .URL .Query ().Get ("ends_after" )
572
+ if endsAfterRaw != "" {
573
+ timeFilterItems .EndTimeAfter = & endsAfterRaw
574
+ }
575
+ filter := surveyTimeFilter (& timeFilterItems )
576
+
577
+ resData , _ , err := h .app .Client .GetSurveys (claims .OrgID , claims .AppID , & claims .Subject , & claims .Subject , surveyIDs , surveyTypes , "" , & limit , & offset , filter , public , archived , completed )
524
578
if err != nil {
525
579
return l .HTTPResponseErrorAction (logutils .ActionGet , model .TypeSurvey , nil , err , http .StatusInternalServerError , true )
526
580
}
0 commit comments