diff --git a/sam/channel.handlers.go b/sam/channel.handlers.go index f08579c81..52eb72a6c 100644 --- a/sam/channel.handlers.go +++ b/sam/channel.handlers.go @@ -30,7 +30,3 @@ func (ch *ChannelHandlers) Move(w http.ResponseWriter, r *http.Request) { params := channelMoveRequest{}.new() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Move(params) }) } -func (ch *ChannelHandlers) Merge(w http.ResponseWriter, r *http.Request) { - params := channelMergeRequest{}.new() - resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Merge(params) }) -} diff --git a/sam/channel.interfaces.go b/sam/channel.interfaces.go index 15d1ff7db..4711b6d44 100644 --- a/sam/channel.interfaces.go +++ b/sam/channel.interfaces.go @@ -23,7 +23,6 @@ type ChannelAPI interface { Search(*channelSearchRequest) (interface{}, error) Archive(*channelArchiveRequest) (interface{}, error) Move(*channelMoveRequest) (interface{}, error) - Merge(*channelMergeRequest) (interface{}, error) } // HTTP API interface @@ -34,7 +33,6 @@ type ChannelHandlersAPI interface { Search(http.ResponseWriter, *http.Request) Archive(http.ResponseWriter, *http.Request) Move(http.ResponseWriter, *http.Request) - Merge(http.ResponseWriter, *http.Request) } // Compile time check to see if we implement the interfaces diff --git a/sam/channel.request.go b/sam/channel.request.go index c03f11307..7b594723a 100644 --- a/sam/channel.request.go +++ b/sam/channel.request.go @@ -174,33 +174,3 @@ func (c *channelMoveRequest) Fill(r *http.Request) error { } var _ RequestFiller = channelMoveRequest{}.new() - -// Channel merge request parameters -type channelMergeRequest struct { - destination uint64 - source uint64 -} - -func (channelMergeRequest) new() *channelMergeRequest { - return &channelMergeRequest{} -} - -func (c *channelMergeRequest) Fill(r *http.Request) error { - get := map[string]string{} - post := map[string]string{} - urlQuery := r.URL.Query() - for name, param := range urlQuery { - get[name] = string(param[0]) - } - postVars := r.Form - for name, param := range postVars { - post[name] = string(param[0]) - } - - c.destination = parseUInt64(post["destination"]) - - c.source = parseUInt64(post["source"]) - return nil -} - -var _ RequestFiller = channelMergeRequest{}.new() diff --git a/sam/team.go b/sam/team.go index f8d5f91c7..1f107c514 100644 --- a/sam/team.go +++ b/sam/team.go @@ -4,21 +4,30 @@ import ( "github.com/pkg/errors" ) -func (t *Team) Edit(r *teamEditRequest) (interface{}, error) { +func (*Team) Edit(r *teamEditRequest) (interface{}, error) { return nil, errors.New("Not implemented: Team.edit") } -func (t *Team) Remove(r *teamRemoveRequest) (interface{}, error) { + +func (*Team) Remove(r *teamRemoveRequest) (interface{}, error) { return nil, errors.New("Not implemented: Team.remove") } -func (t *Team) Read(r *teamReadRequest) (interface{}, error) { + +func (*Team) Read(r *teamReadRequest) (interface{}, error) { return nil, errors.New("Not implemented: Team.read") } -func (t *Team) Search(r *teamSearchRequest) (interface{}, error) { + +func (*Team) Search(r *teamSearchRequest) (interface{}, error) { return nil, errors.New("Not implemented: Team.search") } -func (t *Team) Archive(r *teamArchiveRequest) (interface{}, error) { + +func (*Team) Archive(r *teamArchiveRequest) (interface{}, error) { return nil, errors.New("Not implemented: Team.archive") } -func (t *Team) Move(r *teamMoveRequest) (interface{}, error) { + +func (*Team) Move(r *teamMoveRequest) (interface{}, error) { return nil, errors.New("Not implemented: Team.move") } + +func (*Team) Merge(r *teamMergeRequest) (interface{}, error) { + return nil, errors.New("Not implemented: Team.merge") +} diff --git a/sam/team.handlers.go b/sam/team.handlers.go index 3133ff993..b003de33b 100644 --- a/sam/team.handlers.go +++ b/sam/team.handlers.go @@ -30,3 +30,7 @@ func (th *TeamHandlers) Move(w http.ResponseWriter, r *http.Request) { params := teamMoveRequest{}.new() resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Move(params) }) } +func (th *TeamHandlers) Merge(w http.ResponseWriter, r *http.Request) { + params := teamMergeRequest{}.new() + resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Merge(params) }) +} diff --git a/sam/team.interfaces.go b/sam/team.interfaces.go index ff418b7ef..43a217a6a 100644 --- a/sam/team.interfaces.go +++ b/sam/team.interfaces.go @@ -23,6 +23,7 @@ type TeamAPI interface { Search(*teamSearchRequest) (interface{}, error) Archive(*teamArchiveRequest) (interface{}, error) Move(*teamMoveRequest) (interface{}, error) + Merge(*teamMergeRequest) (interface{}, error) } // HTTP API interface @@ -33,6 +34,7 @@ type TeamHandlersAPI interface { Search(http.ResponseWriter, *http.Request) Archive(http.ResponseWriter, *http.Request) Move(http.ResponseWriter, *http.Request) + Merge(http.ResponseWriter, *http.Request) } // Compile time check to see if we implement the interfaces diff --git a/sam/team.request.go b/sam/team.request.go index ef69aefb3..a719fede4 100644 --- a/sam/team.request.go +++ b/sam/team.request.go @@ -175,3 +175,33 @@ func (t *teamMoveRequest) Fill(r *http.Request) error { } var _ RequestFiller = teamMoveRequest{}.new() + +// Team merge request parameters +type teamMergeRequest struct { + destination uint64 + source uint64 +} + +func (teamMergeRequest) new() *teamMergeRequest { + return &teamMergeRequest{} +} + +func (t *teamMergeRequest) Fill(r *http.Request) error { + get := map[string]string{} + post := map[string]string{} + urlQuery := r.URL.Query() + for name, param := range urlQuery { + get[name] = string(param[0]) + } + postVars := r.Form + for name, param := range postVars { + post[name] = string(param[0]) + } + + t.destination = parseUInt64(post["destination"]) + + t.source = parseUInt64(post["source"]) + return nil +} + +var _ RequestFiller = teamMergeRequest{}.new()