|
@@ -1342,28 +1342,37 @@ func putFeedbagBuddyHandler(w http.ResponseWriter, r *http.Request, buddyBroadca
|
|
|
|
|
|
|
|
var group *wire.FeedbagItem
|
|
var group *wire.FeedbagItem
|
|
|
|
|
|
|
|
|
|
+ count := 0
|
|
|
for _, item := range items {
|
|
for _, item := range items {
|
|
|
switch {
|
|
switch {
|
|
|
case item.ClassID == wire.FeedbagClassIdGroup && item.GroupID == groupID:
|
|
case item.ClassID == wire.FeedbagClassIdGroup && item.GroupID == groupID:
|
|
|
group = &item
|
|
group = &item
|
|
|
- case item.ClassID == wire.FeedbagClassIdBuddy && item.GroupID == groupID && item.Name == newBuddy.IdentScreenName().String():
|
|
|
|
|
- response := struct {
|
|
|
|
|
- Name string `json:"name"`
|
|
|
|
|
- GroupID uint16 `json:"group_id"`
|
|
|
|
|
- ItemID uint16 `json:"item_id"`
|
|
|
|
|
- }{
|
|
|
|
|
- Name: buddyScreenName,
|
|
|
|
|
- GroupID: groupID,
|
|
|
|
|
- ItemID: item.ItemID,
|
|
|
|
|
- }
|
|
|
|
|
- w.WriteHeader(http.StatusOK)
|
|
|
|
|
- if err := json.NewEncoder(w).Encode(response); err != nil {
|
|
|
|
|
- logger.Error("error encoding response", "err", err.Error())
|
|
|
|
|
|
|
+ case item.ClassID == wire.FeedbagClassIdBuddy && item.GroupID == groupID:
|
|
|
|
|
+ count++
|
|
|
|
|
+ if item.Name == newBuddy.IdentScreenName().String() {
|
|
|
|
|
+ response := struct {
|
|
|
|
|
+ Name string `json:"name"`
|
|
|
|
|
+ GroupID uint16 `json:"group_id"`
|
|
|
|
|
+ ItemID uint16 `json:"item_id"`
|
|
|
|
|
+ }{
|
|
|
|
|
+ Name: buddyScreenName,
|
|
|
|
|
+ GroupID: groupID,
|
|
|
|
|
+ ItemID: item.ItemID,
|
|
|
|
|
+ }
|
|
|
|
|
+ w.WriteHeader(http.StatusOK)
|
|
|
|
|
+ if err := json.NewEncoder(w).Encode(response); err != nil {
|
|
|
|
|
+ logger.Error("error encoding response", "err", err.Error())
|
|
|
|
|
+ }
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
- return
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ if count >= 30 {
|
|
|
|
|
+ errorMsg(w, "too many buddies in group. max: 30", http.StatusBadRequest)
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
if group == nil {
|
|
if group == nil {
|
|
|
errorMsg(w, "group not found", http.StatusNotFound)
|
|
errorMsg(w, "group not found", http.StatusNotFound)
|
|
|
return
|
|
return
|