Skip to content

Commit 1c39177

Browse files
author
Nicolás Gudiño
committed
Fix GET group info and invite link by using request parameters and not request body
1 parent c761162 commit 1c39177

File tree

2 files changed

+45
-28
lines changed

2 files changed

+45
-28
lines changed

handlers.go

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2621,15 +2621,14 @@ func (s *server) GetGroupInfo() http.HandlerFunc {
26212621
return
26222622
}
26232623

2624-
decoder := json.NewDecoder(r.Body)
2625-
var t getGroupInfoStruct
2626-
err := decoder.Decode(&t)
2627-
if err != nil {
2628-
s.Respond(w, r, http.StatusBadRequest, errors.New("Could not decode Payload"))
2624+
// Get GroupJID from query parameter
2625+
groupJID := r.URL.Query().Get("groupJID")
2626+
if groupJID == "" {
2627+
s.Respond(w, r, http.StatusBadRequest, errors.New("Missing groupJID parameter"))
26292628
return
26302629
}
26312630

2632-
group, ok := parseJID(t.GroupJID)
2631+
group, ok := parseJID(groupJID)
26332632
if !ok {
26342633
s.Respond(w, r, http.StatusBadRequest, errors.New("Could not parse Group JID"))
26352634
return
@@ -2674,21 +2673,32 @@ func (s *server) GetGroupInviteLink() http.HandlerFunc {
26742673
return
26752674
}
26762675

2677-
decoder := json.NewDecoder(r.Body)
2678-
var t getGroupInfoStruct
2679-
err := decoder.Decode(&t)
2680-
if err != nil {
2681-
s.Respond(w, r, http.StatusBadRequest, errors.New("Could not decode Payload"))
2676+
// Get GroupJID from query parameter
2677+
groupJID := r.URL.Query().Get("groupJID")
2678+
if groupJID == "" {
2679+
s.Respond(w, r, http.StatusBadRequest, errors.New("Missing groupJID parameter"))
26822680
return
26832681
}
26842682

2685-
group, ok := parseJID(t.GroupJID)
2683+
// Get reset parameter
2684+
resetParam := r.URL.Query().Get("reset")
2685+
reset := false
2686+
if resetParam != "" {
2687+
var err error
2688+
reset, err = strconv.ParseBool(resetParam)
2689+
if err != nil {
2690+
s.Respond(w, r, http.StatusBadRequest, errors.New("Invalid reset parameter, must be true or false"))
2691+
return
2692+
}
2693+
}
2694+
2695+
group, ok := parseJID(groupJID)
26862696
if !ok {
26872697
s.Respond(w, r, http.StatusBadRequest, errors.New("Could not parse Group JID"))
26882698
return
26892699
}
26902700

2691-
resp, err := clientPointer[userid].GetGroupInviteLink(group, t.Reset)
2701+
resp, err := clientPointer[userid].GetGroupInviteLink(group, reset)
26922702

26932703
if err != nil {
26942704
log.Error().Str("error", fmt.Sprintf("%v", err)).Msg("Failed to get group invite link")

static/api/spec.yml

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -544,15 +544,22 @@ paths:
544544
- Group
545545
summary: Get Group Invite Link
546546
description: Gets the invite link for a group, optionally resetting it to create a new/different one
547-
requestBody:
548-
required: true
549-
content:
550-
application/json:
551-
schema:
552-
$ref: '#definitions/GroupInviteLink'
547+
parameters:
548+
- in: query
549+
name: groupJID
550+
schema:
551+
type: string
552+
required: true
553+
description: The JID of the group to retrieve information from
554+
- in: query
555+
name: reset
556+
schema:
557+
type: boolean
558+
required: false
559+
description: Whether to revoke the old invite link and generate a new one (default is false)
553560
responses:
554561
200:
555-
description: Response
562+
description: Successfull response
556563
content:
557564
application/json:
558565
schema:
@@ -563,16 +570,16 @@ paths:
563570
- Group
564571
summary: Gets group information
565572
description: Retrieves information about a specific group
566-
requestBody:
567-
required: true
568-
content:
569-
application/json:
570-
schema:
571-
$ref: '#definitions/GroupInfo'
572-
573+
parameters:
574+
- in: query
575+
name: groupJID
576+
schema:
577+
type: string
578+
required: true
579+
description: The JID of the group to retrieve information from
573580
responses:
574581
200:
575-
description: Response
582+
description: Successful response
576583
content:
577584
application/json:
578585
schema:

0 commit comments

Comments
 (0)