upd(all): pass context from http request to service bridge

This commit is contained in:
Tit Petric
2018-07-17 12:23:57 +02:00
parent ea03b5a1ec
commit 235574bf42
26 changed files with 137 additions and 118 deletions
+1 -1
View File
@@ -11,6 +11,6 @@ import (
{foreach $calls as $call}
func ({self}h *{name}Handlers) {call.name|capitalize}(w http.ResponseWriter, r *http.Request) {
params := {name|capitalize}{call.name|capitalize}Request{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return {self}h.{name}.{call.name|capitalize}(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return {self}h.{name}.{call.name|capitalize}(r.Context(), params) })
}
{/foreach}
+2 -1
View File
@@ -3,6 +3,7 @@ package {package}
{load warning.tpl}
import (
"context"
"net/http"
)
@@ -14,7 +15,7 @@ type {name}Handlers struct {
// Internal API interface
type {name}API interface {
{foreach $calls as $call}
{call.name|capitalize}(*{name|expose}{call.name|capitalize}Request) (interface{}, error)
{call.name|capitalize}(context.Context, *{name|expose}{call.name|capitalize}Request) (interface{}, error)
{/foreach}
// Authenticate API requests
+4 -4
View File
@@ -26,10 +26,10 @@ func (Field) New() *Field {
return &Field{service: service.Field()}
}
func (self *Field) List(_ *server.FieldListRequest) (interface{}, error) {
return self.service.Find(context.TODO())
func (self *Field) List(ctx context.Context,_ *server.FieldListRequest) (interface{}, error) {
return self.service.Find(ctx)
}
func (self *Field) Type(r *server.FieldTypeRequest) (interface{}, error) {
return self.service.FindByName(context.TODO(), r.ID)
func (self *Field) Type(ctx context.Context, r *server.FieldTypeRequest) (interface{}, error) {
return self.service.FindByName(ctx, r.ID)
}
+8 -8
View File
@@ -32,29 +32,29 @@ func (Module) New() *Module {
}
}
func (c *Module) List(r *server.ModuleListRequest) (interface{}, error) {
return c.service.Find(context.TODO())
func (c *Module) List(ctx context.Context, r *server.ModuleListRequest) (interface{}, error) {
return c.service.Find(ctx)
}
func (c *Module) Edit(r *server.ModuleEditRequest) (interface{}, error) {
func (c *Module) Edit(ctx context.Context, r *server.ModuleEditRequest) (interface{}, error) {
m := types.Module{}.New()
m.SetID(r.ID).SetName(r.Name)
if m.GetID() > 0 {
return c.service.Update(context.TODO(), m)
return c.service.Update(ctx, m)
}
return c.service.Create(context.TODO(), m)
return c.service.Create(ctx, m)
}
func (*Module) ContentList(r *server.ModuleContentListRequest) (interface{}, error) {
func (*Module) ContentList(ctx context.Context, r *server.ModuleContentListRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Module.content/edit")
}
func (*Module) ContentEdit(r *server.ModuleContentEditRequest) (interface{}, error) {
func (*Module) ContentEdit(ctx context.Context, r *server.ModuleContentEditRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Module.content/edit")
}
func (*Module) ContentDelete(r *server.ModuleContentDeleteRequest) (interface{}, error) {
func (*Module) ContentDelete(ctx context.Context, r *server.ModuleContentDeleteRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Module.content/delete")
}
+3 -2
View File
@@ -16,6 +16,7 @@ package server
*/
import (
"context"
"net/http"
)
@@ -26,8 +27,8 @@ type FieldHandlers struct {
// Internal API interface
type FieldAPI interface {
List(*FieldListRequest) (interface{}, error)
Type(*FieldTypeRequest) (interface{}, error)
List(context.Context, *FieldListRequest) (interface{}, error)
Type(context.Context, *FieldTypeRequest) (interface{}, error)
// Authenticate API requests
Authenticator() func(http.Handler) http.Handler
+2 -2
View File
@@ -23,9 +23,9 @@ import (
func (fh *FieldHandlers) List(w http.ResponseWriter, r *http.Request) {
params := FieldListRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return fh.Field.List(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return fh.Field.List(r.Context(), params) })
}
func (fh *FieldHandlers) Type(w http.ResponseWriter, r *http.Request) {
params := FieldTypeRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return fh.Field.Type(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return fh.Field.Type(r.Context(), params) })
}
+6 -5
View File
@@ -16,6 +16,7 @@ package server
*/
import (
"context"
"net/http"
)
@@ -26,11 +27,11 @@ type ModuleHandlers struct {
// Internal API interface
type ModuleAPI interface {
List(*ModuleListRequest) (interface{}, error)
Edit(*ModuleEditRequest) (interface{}, error)
ContentList(*ModuleContentListRequest) (interface{}, error)
ContentEdit(*ModuleContentEditRequest) (interface{}, error)
ContentDelete(*ModuleContentDeleteRequest) (interface{}, error)
List(context.Context, *ModuleListRequest) (interface{}, error)
Edit(context.Context, *ModuleEditRequest) (interface{}, error)
ContentList(context.Context, *ModuleContentListRequest) (interface{}, error)
ContentEdit(context.Context, *ModuleContentEditRequest) (interface{}, error)
ContentDelete(context.Context, *ModuleContentDeleteRequest) (interface{}, error)
// Authenticate API requests
Authenticator() func(http.Handler) http.Handler
+5 -5
View File
@@ -23,21 +23,21 @@ import (
func (mh *ModuleHandlers) List(w http.ResponseWriter, r *http.Request) {
params := ModuleListRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Module.List(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Module.List(r.Context(), params) })
}
func (mh *ModuleHandlers) Edit(w http.ResponseWriter, r *http.Request) {
params := ModuleEditRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Module.Edit(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Module.Edit(r.Context(), params) })
}
func (mh *ModuleHandlers) ContentList(w http.ResponseWriter, r *http.Request) {
params := ModuleContentListRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Module.ContentList(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Module.ContentList(r.Context(), params) })
}
func (mh *ModuleHandlers) ContentEdit(w http.ResponseWriter, r *http.Request) {
params := ModuleContentEditRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Module.ContentEdit(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Module.ContentEdit(r.Context(), params) })
}
func (mh *ModuleHandlers) ContentDelete(w http.ResponseWriter, r *http.Request) {
params := ModuleContentDeleteRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Module.ContentDelete(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Module.ContentDelete(r.Context(), params) })
}
+7 -5
View File
@@ -1,6 +1,8 @@
package rest
import (
"context"
"github.com/davecgh/go-spew/spew"
"github.com/pkg/errors"
"github.com/titpetric/factory"
@@ -22,7 +24,7 @@ func (Channel) New() *Channel {
return &Channel{}
}
func (*Channel) Create(r *server.ChannelCreateRequest) (interface{}, error) {
func (*Channel) Create(ctx context.Context, r *server.ChannelCreateRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -42,7 +44,7 @@ func (*Channel) Create(r *server.ChannelCreateRequest) (interface{}, error) {
return c, db.Insert("channels", c)
}
func (*Channel) Edit(r *server.ChannelEditRequest) (interface{}, error) {
func (*Channel) Edit(ctx context.Context, r *server.ChannelEditRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -69,7 +71,7 @@ func (*Channel) Edit(r *server.ChannelEditRequest) (interface{}, error) {
}
func (*Channel) Delete(r *server.ChannelDeleteRequest) (interface{}, error) {
func (*Channel) Delete(ctx context.Context, r *server.ChannelDeleteRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -92,11 +94,11 @@ func (*Channel) Delete(r *server.ChannelDeleteRequest) (interface{}, error) {
}()
}
func (s *Channel) Read(r *server.ChannelReadRequest) (interface{}, error) {
func (s *Channel) Read(ctx context.Context, r *server.ChannelReadRequest) (interface{}, error) {
return s.load(r.ID)
}
func (*Channel) List(r *server.ChannelListRequest) (interface{}, error) {
func (*Channel) List(ctx context.Context, r *server.ChannelListRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
+8 -7
View File
@@ -1,6 +1,7 @@
package rest
import (
"context"
"github.com/pkg/errors"
"github.com/crusttech/crust/sam/rest/server"
@@ -15,30 +16,30 @@ func (Message) New() *Message {
var _ = errors.Wrap
func (*Message) Edit(r *server.MessageEditRequest) (interface{}, error) {
func (*Message) Edit(ctx context.Context, r *server.MessageEditRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Message.edit")
}
func (*Message) Attach(r *server.MessageAttachRequest) (interface{}, error) {
func (*Message) Attach(ctx context.Context, r *server.MessageAttachRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Message.attach")
}
func (*Message) Remove(r *server.MessageRemoveRequest) (interface{}, error) {
func (*Message) Remove(ctx context.Context, r *server.MessageRemoveRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Message.remove")
}
func (*Message) Read(r *server.MessageReadRequest) (interface{}, error) {
func (*Message) Read(ctx context.Context, r *server.MessageReadRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Message.read")
}
func (*Message) Search(r *server.MessageSearchRequest) (interface{}, error) {
func (*Message) Search(ctx context.Context, r *server.MessageSearchRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Message.search")
}
func (*Message) Pin(r *server.MessagePinRequest) (interface{}, error) {
func (*Message) Pin(ctx context.Context, r *server.MessagePinRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Message.pin")
}
func (*Message) Flag(r *server.MessageFlagRequest) (interface{}, error) {
func (*Message) Flag(ctx context.Context, r *server.MessageFlagRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Message.flag")
}
+8 -6
View File
@@ -2,6 +2,8 @@ package rest
import (
"fmt"
"context"
"github.com/pkg/errors"
"github.com/titpetric/factory"
@@ -22,7 +24,7 @@ func (Organisation) New() *Organisation {
return &Organisation{}
}
func (*Organisation) Create(r *server.OrganisationCreateRequest) (interface{}, error) {
func (*Organisation) Create(ctx context.Context, r *server.OrganisationCreateRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -35,7 +37,7 @@ func (*Organisation) Create(r *server.OrganisationCreateRequest) (interface{}, e
return o, db.Insert("organisation", o)
}
func (*Organisation) Edit(r *server.OrganisationEditRequest) (interface{}, error) {
func (*Organisation) Edit(ctx context.Context, r *server.OrganisationEditRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -48,7 +50,7 @@ func (*Organisation) Edit(r *server.OrganisationEditRequest) (interface{}, error
return o, db.Replace("organisation", o)
}
func (*Organisation) Remove(r *server.OrganisationRemoveRequest) (interface{}, error) {
func (*Organisation) Remove(ctx context.Context, r *server.OrganisationRemoveRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -65,7 +67,7 @@ func (*Organisation) Remove(r *server.OrganisationRemoveRequest) (interface{}, e
}()
}
func (*Organisation) Read(r *server.OrganisationReadRequest) (interface{}, error) {
func (*Organisation) Read(ctx context.Context, r *server.OrganisationReadRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -77,7 +79,7 @@ func (*Organisation) Read(r *server.OrganisationReadRequest) (interface{}, error
return o, db.Get(o, sqlOrganisationSelect+" AND id = ?", r.ID)
}
func (*Organisation) List(r *server.OrganisationListRequest) (interface{}, error) {
func (*Organisation) List(ctx context.Context, r *server.OrganisationListRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -91,7 +93,7 @@ func (*Organisation) List(r *server.OrganisationListRequest) (interface{}, error
return res, err
}
func (*Organisation) Archive(r *server.OrganisationArchiveRequest) (interface{}, error) {
func (*Organisation) Archive(ctx context.Context, r *server.OrganisationArchiveRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
+6 -5
View File
@@ -16,6 +16,7 @@ package server
*/
import (
"context"
"net/http"
)
@@ -26,11 +27,11 @@ type ChannelHandlers struct {
// Internal API interface
type ChannelAPI interface {
List(*ChannelListRequest) (interface{}, error)
Create(*ChannelCreateRequest) (interface{}, error)
Edit(*ChannelEditRequest) (interface{}, error)
Read(*ChannelReadRequest) (interface{}, error)
Delete(*ChannelDeleteRequest) (interface{}, error)
List(context.Context, *ChannelListRequest) (interface{}, error)
Create(context.Context, *ChannelCreateRequest) (interface{}, error)
Edit(context.Context, *ChannelEditRequest) (interface{}, error)
Read(context.Context, *ChannelReadRequest) (interface{}, error)
Delete(context.Context, *ChannelDeleteRequest) (interface{}, error)
// Authenticate API requests
Authenticator() func(http.Handler) http.Handler
+5 -5
View File
@@ -23,21 +23,21 @@ import (
func (ch *ChannelHandlers) List(w http.ResponseWriter, r *http.Request) {
params := ChannelListRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.List(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.List(r.Context(), params) })
}
func (ch *ChannelHandlers) Create(w http.ResponseWriter, r *http.Request) {
params := ChannelCreateRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Create(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Create(r.Context(), params) })
}
func (ch *ChannelHandlers) Edit(w http.ResponseWriter, r *http.Request) {
params := ChannelEditRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Edit(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Edit(r.Context(), params) })
}
func (ch *ChannelHandlers) Read(w http.ResponseWriter, r *http.Request) {
params := ChannelReadRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Read(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Read(r.Context(), params) })
}
func (ch *ChannelHandlers) Delete(w http.ResponseWriter, r *http.Request) {
params := ChannelDeleteRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Delete(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return ch.Channel.Delete(r.Context(), params) })
}
+8 -7
View File
@@ -16,6 +16,7 @@ package server
*/
import (
"context"
"net/http"
)
@@ -26,13 +27,13 @@ type MessageHandlers struct {
// Internal API interface
type MessageAPI interface {
Edit(*MessageEditRequest) (interface{}, error)
Attach(*MessageAttachRequest) (interface{}, error)
Remove(*MessageRemoveRequest) (interface{}, error)
Read(*MessageReadRequest) (interface{}, error)
Search(*MessageSearchRequest) (interface{}, error)
Pin(*MessagePinRequest) (interface{}, error)
Flag(*MessageFlagRequest) (interface{}, error)
Edit(context.Context, *MessageEditRequest) (interface{}, error)
Attach(context.Context, *MessageAttachRequest) (interface{}, error)
Remove(context.Context, *MessageRemoveRequest) (interface{}, error)
Read(context.Context, *MessageReadRequest) (interface{}, error)
Search(context.Context, *MessageSearchRequest) (interface{}, error)
Pin(context.Context, *MessagePinRequest) (interface{}, error)
Flag(context.Context, *MessageFlagRequest) (interface{}, error)
// Authenticate API requests
Authenticator() func(http.Handler) http.Handler
+7 -7
View File
@@ -23,29 +23,29 @@ import (
func (mh *MessageHandlers) Edit(w http.ResponseWriter, r *http.Request) {
params := MessageEditRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Edit(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Edit(r.Context(), params) })
}
func (mh *MessageHandlers) Attach(w http.ResponseWriter, r *http.Request) {
params := MessageAttachRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Attach(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Attach(r.Context(), params) })
}
func (mh *MessageHandlers) Remove(w http.ResponseWriter, r *http.Request) {
params := MessageRemoveRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Remove(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Remove(r.Context(), params) })
}
func (mh *MessageHandlers) Read(w http.ResponseWriter, r *http.Request) {
params := MessageReadRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Read(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Read(r.Context(), params) })
}
func (mh *MessageHandlers) Search(w http.ResponseWriter, r *http.Request) {
params := MessageSearchRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Search(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Search(r.Context(), params) })
}
func (mh *MessageHandlers) Pin(w http.ResponseWriter, r *http.Request) {
params := MessagePinRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Pin(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Pin(r.Context(), params) })
}
func (mh *MessageHandlers) Flag(w http.ResponseWriter, r *http.Request) {
params := MessageFlagRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Flag(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return mh.Message.Flag(r.Context(), params) })
}
+7 -6
View File
@@ -16,6 +16,7 @@ package server
*/
import (
"context"
"net/http"
)
@@ -26,12 +27,12 @@ type OrganisationHandlers struct {
// Internal API interface
type OrganisationAPI interface {
List(*OrganisationListRequest) (interface{}, error)
Create(*OrganisationCreateRequest) (interface{}, error)
Edit(*OrganisationEditRequest) (interface{}, error)
Remove(*OrganisationRemoveRequest) (interface{}, error)
Read(*OrganisationReadRequest) (interface{}, error)
Archive(*OrganisationArchiveRequest) (interface{}, error)
List(context.Context, *OrganisationListRequest) (interface{}, error)
Create(context.Context, *OrganisationCreateRequest) (interface{}, error)
Edit(context.Context, *OrganisationEditRequest) (interface{}, error)
Remove(context.Context, *OrganisationRemoveRequest) (interface{}, error)
Read(context.Context, *OrganisationReadRequest) (interface{}, error)
Archive(context.Context, *OrganisationArchiveRequest) (interface{}, error)
// Authenticate API requests
Authenticator() func(http.Handler) http.Handler
+6 -6
View File
@@ -23,25 +23,25 @@ import (
func (oh *OrganisationHandlers) List(w http.ResponseWriter, r *http.Request) {
params := OrganisationListRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.List(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.List(r.Context(), params) })
}
func (oh *OrganisationHandlers) Create(w http.ResponseWriter, r *http.Request) {
params := OrganisationCreateRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.Create(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.Create(r.Context(), params) })
}
func (oh *OrganisationHandlers) Edit(w http.ResponseWriter, r *http.Request) {
params := OrganisationEditRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.Edit(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.Edit(r.Context(), params) })
}
func (oh *OrganisationHandlers) Remove(w http.ResponseWriter, r *http.Request) {
params := OrganisationRemoveRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.Remove(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.Remove(r.Context(), params) })
}
func (oh *OrganisationHandlers) Read(w http.ResponseWriter, r *http.Request) {
params := OrganisationReadRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.Read(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.Read(r.Context(), params) })
}
func (oh *OrganisationHandlers) Archive(w http.ResponseWriter, r *http.Request) {
params := OrganisationArchiveRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.Archive(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return oh.Organisation.Archive(r.Context(), params) })
}
+9 -8
View File
@@ -16,6 +16,7 @@ package server
*/
import (
"context"
"net/http"
)
@@ -26,14 +27,14 @@ type TeamHandlers struct {
// Internal API interface
type TeamAPI interface {
List(*TeamListRequest) (interface{}, error)
Create(*TeamCreateRequest) (interface{}, error)
Edit(*TeamEditRequest) (interface{}, error)
Read(*TeamReadRequest) (interface{}, error)
Remove(*TeamRemoveRequest) (interface{}, error)
Archive(*TeamArchiveRequest) (interface{}, error)
Move(*TeamMoveRequest) (interface{}, error)
Merge(*TeamMergeRequest) (interface{}, error)
List(context.Context, *TeamListRequest) (interface{}, error)
Create(context.Context, *TeamCreateRequest) (interface{}, error)
Edit(context.Context, *TeamEditRequest) (interface{}, error)
Read(context.Context, *TeamReadRequest) (interface{}, error)
Remove(context.Context, *TeamRemoveRequest) (interface{}, error)
Archive(context.Context, *TeamArchiveRequest) (interface{}, error)
Move(context.Context, *TeamMoveRequest) (interface{}, error)
Merge(context.Context, *TeamMergeRequest) (interface{}, error)
// Authenticate API requests
Authenticator() func(http.Handler) http.Handler
+8 -8
View File
@@ -23,33 +23,33 @@ import (
func (th *TeamHandlers) List(w http.ResponseWriter, r *http.Request) {
params := TeamListRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.List(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.List(r.Context(), params) })
}
func (th *TeamHandlers) Create(w http.ResponseWriter, r *http.Request) {
params := TeamCreateRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Create(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Create(r.Context(), params) })
}
func (th *TeamHandlers) Edit(w http.ResponseWriter, r *http.Request) {
params := TeamEditRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Edit(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Edit(r.Context(), params) })
}
func (th *TeamHandlers) Read(w http.ResponseWriter, r *http.Request) {
params := TeamReadRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Read(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Read(r.Context(), params) })
}
func (th *TeamHandlers) Remove(w http.ResponseWriter, r *http.Request) {
params := TeamRemoveRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Remove(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Remove(r.Context(), params) })
}
func (th *TeamHandlers) Archive(w http.ResponseWriter, r *http.Request) {
params := TeamArchiveRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Archive(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Archive(r.Context(), params) })
}
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) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Move(r.Context(), 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) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return th.Team.Merge(r.Context(), params) })
}
+3 -2
View File
@@ -16,6 +16,7 @@ package server
*/
import (
"context"
"net/http"
)
@@ -26,8 +27,8 @@ type UserHandlers struct {
// Internal API interface
type UserAPI interface {
Login(*UserLoginRequest) (interface{}, error)
Search(*UserSearchRequest) (interface{}, error)
Login(context.Context, *UserLoginRequest) (interface{}, error)
Search(context.Context, *UserSearchRequest) (interface{}, error)
// Authenticate API requests
Authenticator() func(http.Handler) http.Handler
+2 -2
View File
@@ -23,9 +23,9 @@ import (
func (uh *UserHandlers) Login(w http.ResponseWriter, r *http.Request) {
params := UserLoginRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return uh.User.Login(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return uh.User.Login(r.Context(), params) })
}
func (uh *UserHandlers) Search(w http.ResponseWriter, r *http.Request) {
params := UserSearchRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return uh.User.Search(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return uh.User.Search(r.Context(), params) })
}
+2 -1
View File
@@ -16,6 +16,7 @@ package server
*/
import (
"context"
"net/http"
)
@@ -26,7 +27,7 @@ type WebsocketHandlers struct {
// Internal API interface
type WebsocketAPI interface {
Client(*WebsocketClientRequest) (interface{}, error)
Client(context.Context, *WebsocketClientRequest) (interface{}, error)
// Authenticate API requests
Authenticator() func(http.Handler) http.Handler
+1 -1
View File
@@ -23,5 +23,5 @@ import (
func (wh *WebsocketHandlers) Client(w http.ResponseWriter, r *http.Request) {
params := WebsocketClientRequest{}.new()
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return wh.Websocket.Client(params) })
resputil.JSON(w, params.Fill(r), func() (interface{}, error) { return wh.Websocket.Client(r.Context(), params) })
}
+10 -8
View File
@@ -2,6 +2,8 @@ package rest
import (
"fmt"
"context"
"github.com/pkg/errors"
"github.com/titpetric/factory"
@@ -22,7 +24,7 @@ func (Team) New() *Team {
return &Team{}
}
func (*Team) Create(r *server.TeamCreateRequest) (interface{}, error) {
func (*Team) Create(ctx context.Context, r *server.TeamCreateRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -36,7 +38,7 @@ func (*Team) Create(r *server.TeamCreateRequest) (interface{}, error) {
return t, db.Insert("team", t)
}
func (*Team) Edit(r *server.TeamEditRequest) (interface{}, error) {
func (*Team) Edit(ctx context.Context, r *server.TeamEditRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -50,7 +52,7 @@ func (*Team) Edit(r *server.TeamEditRequest) (interface{}, error) {
return t, db.Replace("team", t)
}
func (*Team) Remove(r *server.TeamRemoveRequest) (interface{}, error) {
func (*Team) Remove(ctx context.Context, r *server.TeamRemoveRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -64,7 +66,7 @@ func (*Team) Remove(r *server.TeamRemoveRequest) (interface{}, error) {
}()
}
func (*Team) Read(r *server.TeamReadRequest) (interface{}, error) {
func (*Team) Read(ctx context.Context, r *server.TeamReadRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -74,7 +76,7 @@ func (*Team) Read(r *server.TeamReadRequest) (interface{}, error) {
return t, db.Get(t, sqlTeamSelect+" AND id = ?", r.ID)
}
func (*Team) List(r *server.TeamListRequest) (interface{}, error) {
func (*Team) List(ctx context.Context, r *server.TeamListRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -85,7 +87,7 @@ func (*Team) List(r *server.TeamListRequest) (interface{}, error) {
return res, err
}
func (*Team) Archive(r *server.TeamArchiveRequest) (interface{}, error) {
func (*Team) Archive(ctx context.Context, r *server.TeamArchiveRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -101,10 +103,10 @@ func (*Team) Archive(r *server.TeamArchiveRequest) (interface{}, error) {
}()
}
func (*Team) Move(r *server.TeamMoveRequest) (interface{}, error) {
func (*Team) Move(ctx context.Context, r *server.TeamMoveRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Team.move")
}
func (*Team) Merge(r *server.TeamMergeRequest) (interface{}, error) {
func (*Team) Merge(ctx context.Context, r *server.TeamMergeRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Team.merge")
}
+7 -5
View File
@@ -1,6 +1,8 @@
package rest
import (
"context"
"github.com/pkg/errors"
"github.com/titpetric/factory"
@@ -35,7 +37,7 @@ func (User) New() *User {
}
/*
func (self *User) Read(r *teamReadRequest) (interface{}, error) {
func (self *User) Read(ctx context.Context, r *teamReadRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -47,7 +49,7 @@ func (self *User) Read(r *teamReadRequest) (interface{}, error) {
*/
// User lookup & login
func (self *User) Login(r *server.UserLoginRequest) (interface{}, error) {
func (self *User) Login(ctx context.Context, r *server.UserLoginRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -71,7 +73,7 @@ func (self *User) Login(r *server.UserLoginRequest) (interface{}, error) {
}
// Searches the users table in the database to find users by matching (by-prefix) their.Username
func (*User) Search(r *server.UserSearchRequest) (interface{}, error) {
func (*User) Search(ctx context.Context, r *server.UserSearchRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -86,7 +88,7 @@ func (*User) Search(r *server.UserSearchRequest) (interface{}, error) {
}
/*
func (self *User) Remove(r *teamRemoveRequest) (interface{}, error) {
func (self *User) Remove(ctx context.Context, r *teamRemoveRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
@@ -100,7 +102,7 @@ func (self *User) Remove(r *teamRemoveRequest) (interface{}, error) {
}()
}
func (self *User) Archive(r *teamArchiveRequest) (interface{}, error) {
func (self *User) Archive(ctx context.Context, r *teamArchiveRequest) (interface{}, error) {
db, err := factory.Database.Get()
if err != nil {
return nil, err
+2 -1
View File
@@ -1,6 +1,7 @@
package rest
import (
"context"
"github.com/pkg/errors"
"github.com/crusttech/crust/sam/rest/server"
@@ -15,6 +16,6 @@ func (Websocket) New() *Websocket {
return &Websocket{}
}
func (*Websocket) Client(r *server.WebsocketClientRequest) (interface{}, error) {
func (*Websocket) Client(ctx context.Context, r *server.WebsocketClientRequest) (interface{}, error) {
return nil, errors.New("Not implemented: Websocket.client")
}