From 7506d1c0bbe00ee46cea06bc050a83bc525763a5 Mon Sep 17 00:00:00 2001 From: 5elenay <5elenay@protonmail.com> Date: Wed, 25 Aug 2021 13:00:43 +0300 Subject: [PATCH] added fetch bans. --- server.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/server.go b/server.go index a05cc21..50501bd 100644 --- a/server.go +++ b/server.go @@ -58,6 +58,18 @@ type FetchedMembers struct { Users []*User `json:"users"` } +// Fetched bans struct. +type FetchedBans struct { + Users []*User `json:"users"` + Bans []struct { + Ids struct { + UserId string `json:"user"` + ServerUd string `json:"server"` + } `json:"_id"` + Reason string `json:"reason"` + } `json:"bans"` +} + // Calculate creation date and edit the struct. func (s *Server) CalculateCreationDate() error { ulid, err := ulid.Parse(s.Id) @@ -233,6 +245,30 @@ func (s Server) UnbanMember(id string) error { return nil } +// Fetch server bans. +func (s Server) FetchBans() (*FetchedBans, error) { + bans := &FetchedBans{} + + data, err := s.Client.Request("GET", "/servers/"+s.Id+"/bans", []byte{}) + + if err != nil { + return bans, err + } + + err = json.Unmarshal(data, bans) + + if err != nil { + return bans, err + } + + // Add client to the user + for _, i := range bans.Users { + i.Client = s.Client + } + + return bans, nil +} + // // Fetch all server invites. // func (s Server) FetchInvites() { // data, _ := s.Client.Request("GET", "/servers/"+s.Id+"/invites", []byte{})