diff --git a/sam/rest/user.go b/sam/rest/user.go index 8bc46a956..10ba609e9 100644 --- a/sam/rest/user.go +++ b/sam/rest/user.go @@ -2,22 +2,38 @@ package rest import ( "context" + + authService "github.com/crusttech/crust/auth/service" + authTypes "github.com/crusttech/crust/auth/types" "github.com/crusttech/crust/sam/rest/request" + "github.com/crusttech/crust/sam/service" + "github.com/crusttech/crust/sam/types" "github.com/pkg/errors" ) var _ = errors.Wrap -type User struct{} +type ( + User struct { + svc struct { + user authService.UserService + message service.MessageService + } + } +) func (User) New() *User { - return &User{} + ctrl := &User{} + ctrl.svc.user = authService.DefaultUser + ctrl.svc.message = service.DefaultMessage + return ctrl } +// Searches the users table in the database to find users by matching (by-prefix) their.Username func (ctrl *User) Search(ctx context.Context, r *request.UserSearch) (interface{}, error) { - return nil, errors.New("Not implemented: User.search") + return ctrl.svc.user.With(ctx).Find(&authTypes.UserFilter{Query: r.Query}) } func (ctrl *User) Message(ctx context.Context, r *request.UserMessage) (interface{}, error) { - return nil, errors.New("Not implemented: User.message") + return ctrl.svc.message.With(ctx).Direct(r.UserID, &types.Message{Message: r.Message}) }