diff --git a/crm/rest/handlers/field.go b/crm/rest/handlers/field.go index fc55c5472..e946cefa1 100644 --- a/crm/rest/handlers/field.go +++ b/crm/rest/handlers/field.go @@ -40,12 +40,14 @@ type Field struct { func NewField(fh FieldAPI) *Field { return &Field{ List: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewFieldList() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return fh.List(r.Context(), params) }) }, Type: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewFieldType() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return fh.Type(r.Context(), params) diff --git a/crm/rest/handlers/module.go b/crm/rest/handlers/module.go index 1c357d216..1cdc3c7f4 100644 --- a/crm/rest/handlers/module.go +++ b/crm/rest/handlers/module.go @@ -56,60 +56,70 @@ type Module struct { func NewModule(mh ModuleAPI) *Module { return &Module{ List: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewModuleList() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.List(r.Context(), params) }) }, Create: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewModuleCreate() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Create(r.Context(), params) }) }, Read: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewModuleRead() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Read(r.Context(), params) }) }, Edit: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewModuleEdit() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Edit(r.Context(), params) }) }, Delete: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewModuleDelete() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Delete(r.Context(), params) }) }, ContentList: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewModuleContentList() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.ContentList(r.Context(), params) }) }, ContentCreate: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewModuleContentCreate() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.ContentCreate(r.Context(), params) }) }, ContentRead: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewModuleContentRead() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.ContentRead(r.Context(), params) }) }, ContentEdit: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewModuleContentEdit() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.ContentEdit(r.Context(), params) }) }, ContentDelete: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewModuleContentDelete() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.ContentDelete(r.Context(), params) diff --git a/sam/rest/handlers/auth.go b/sam/rest/handlers/auth.go index 2e67cac2f..fed3f92c1 100644 --- a/sam/rest/handlers/auth.go +++ b/sam/rest/handlers/auth.go @@ -40,12 +40,14 @@ type Auth struct { func NewAuth(ah AuthAPI) *Auth { return &Auth{ Login: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewAuthLogin() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ah.Login(r.Context(), params) }) }, Create: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewAuthCreate() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ah.Create(r.Context(), params) diff --git a/sam/rest/handlers/channel.go b/sam/rest/handlers/channel.go index ba243cfb5..7364bccf6 100644 --- a/sam/rest/handlers/channel.go +++ b/sam/rest/handlers/channel.go @@ -54,54 +54,63 @@ type Channel struct { func NewChannel(ch ChannelAPI) *Channel { return &Channel{ List: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewChannelList() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.List(r.Context(), params) }) }, Create: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewChannelCreate() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Create(r.Context(), params) }) }, Edit: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewChannelEdit() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Edit(r.Context(), params) }) }, Read: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewChannelRead() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Read(r.Context(), params) }) }, Delete: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewChannelDelete() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Delete(r.Context(), params) }) }, Members: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewChannelMembers() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Members(r.Context(), params) }) }, Join: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewChannelJoin() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Join(r.Context(), params) }) }, Part: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewChannelPart() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Part(r.Context(), params) }) }, Invite: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewChannelInvite() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Invite(r.Context(), params) diff --git a/sam/rest/handlers/message.go b/sam/rest/handlers/message.go index 901988edd..5017ff010 100644 --- a/sam/rest/handlers/message.go +++ b/sam/rest/handlers/message.go @@ -60,72 +60,84 @@ type Message struct { func NewMessage(mh MessageAPI) *Message { return &Message{ Create: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewMessageCreate() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Create(r.Context(), params) }) }, History: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewMessageHistory() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.History(r.Context(), params) }) }, Edit: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewMessageEdit() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Edit(r.Context(), params) }) }, Delete: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewMessageDelete() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Delete(r.Context(), params) }) }, Attach: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewMessageAttach() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Attach(r.Context(), params) }) }, Search: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewMessageSearch() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Search(r.Context(), params) }) }, Pin: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewMessagePin() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Pin(r.Context(), params) }) }, Unpin: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewMessageUnpin() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Unpin(r.Context(), params) }) }, Flag: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewMessageFlag() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Flag(r.Context(), params) }) }, Unflag: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewMessageUnflag() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Unflag(r.Context(), params) }) }, React: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewMessageReact() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.React(r.Context(), params) }) }, Unreact: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewMessageUnreact() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Unreact(r.Context(), params) diff --git a/sam/rest/handlers/organisation.go b/sam/rest/handlers/organisation.go index 174adcab5..a4ac1ee25 100644 --- a/sam/rest/handlers/organisation.go +++ b/sam/rest/handlers/organisation.go @@ -48,36 +48,42 @@ type Organisation struct { func NewOrganisation(oh OrganisationAPI) *Organisation { return &Organisation{ List: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewOrganisationList() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.List(r.Context(), params) }) }, Create: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewOrganisationCreate() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Create(r.Context(), params) }) }, Edit: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewOrganisationEdit() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Edit(r.Context(), params) }) }, Remove: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewOrganisationRemove() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Remove(r.Context(), params) }) }, Read: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewOrganisationRead() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Read(r.Context(), params) }) }, Archive: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewOrganisationArchive() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Archive(r.Context(), params) diff --git a/sam/rest/handlers/team.go b/sam/rest/handlers/team.go index e3eda698f..39ee96c86 100644 --- a/sam/rest/handlers/team.go +++ b/sam/rest/handlers/team.go @@ -52,48 +52,56 @@ type Team struct { func NewTeam(th TeamAPI) *Team { return &Team{ List: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewTeamList() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.List(r.Context(), params) }) }, Create: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewTeamCreate() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Create(r.Context(), params) }) }, Edit: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewTeamEdit() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Edit(r.Context(), params) }) }, Read: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewTeamRead() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Read(r.Context(), params) }) }, Remove: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewTeamRemove() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Remove(r.Context(), params) }) }, Archive: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewTeamArchive() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Archive(r.Context(), params) }) }, Move: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewTeamMove() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Move(r.Context(), params) }) }, Merge: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewTeamMerge() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Merge(r.Context(), params) diff --git a/sam/rest/handlers/user.go b/sam/rest/handlers/user.go index 0310e19e1..2ab1cfb98 100644 --- a/sam/rest/handlers/user.go +++ b/sam/rest/handlers/user.go @@ -40,12 +40,14 @@ type User struct { func NewUser(uh UserAPI) *User { return &User{ Search: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewUserSearch() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return uh.Search(r.Context(), params) }) }, Message: func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() params := request.NewUserMessage() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return uh.Message(r.Context(), params)