From 8b8d6c1a95d76a3d8ee8ab27fa55b3fef950fa0c Mon Sep 17 00:00:00 2001 From: Janos Dobronszki Date: Tue, 15 Jun 2021 10:38:04 +0100 Subject: [PATCH] User service: move to db (#146) --- db/examples.json | 2 +- db/handler/db.go | 1 + db/handler/parse_test.go | 10 + test/users/Dockerfile | 3 - test/users/Makefile | 22 - test/users/README.md | 73 --- test/users/domain/domain.go | 149 ----- test/users/generate.go | 3 - test/users/handler/handler.go | 174 ----- test/users/main.go | 22 - test/users/micro.mu | 1 - test/users/proto/users.pb.go | 998 ----------------------------- test/users/proto/users.pb.micro.go | 229 ------- test/users/proto/users.proto | 110 ---- user/domain/domain.go | 243 ++++--- user/examples.json | 66 ++ user/handler/handler.go | 53 +- user/main.go | 3 +- user/proto/user.pb.go | 445 +++++-------- user/proto/user.pb.micro.go | 17 - user/proto/user.proto | 15 +- 21 files changed, 427 insertions(+), 2212 deletions(-) delete mode 100644 test/users/Dockerfile delete mode 100644 test/users/Makefile delete mode 100644 test/users/README.md delete mode 100644 test/users/domain/domain.go delete mode 100644 test/users/generate.go delete mode 100644 test/users/handler/handler.go delete mode 100644 test/users/main.go delete mode 100644 test/users/micro.mu delete mode 100644 test/users/proto/users.pb.go delete mode 100644 test/users/proto/users.pb.micro.go delete mode 100644 test/users/proto/users.proto create mode 100644 user/examples.json diff --git a/db/examples.json b/db/examples.json index 607e169..4ff6c42 100644 --- a/db/examples.json +++ b/db/examples.json @@ -33,7 +33,7 @@ "records": [{ "id": "1", "name": "Jane", - "age": 42, + "age": 43, "isActive":true }] } diff --git a/db/handler/db.go b/db/handler/db.go index 6039ec5..f4a5030 100644 --- a/db/handler/db.go +++ b/db/handler/db.go @@ -204,6 +204,7 @@ func (e *Db) Read(ctx context.Context, req *db.ReadRequest, rsp *db.ReadResponse } db = db.Table(tableName) for _, query := range queries { + logger.Infof("Query field: %v, op: %v, type: %v", query.Field, query.Op, query.Value) typ := "text" switch query.Value.(type) { case int64: diff --git a/db/handler/parse_test.go b/db/handler/parse_test.go index a0f80c9..bc771ae 100644 --- a/db/handler/parse_test.go +++ b/db/handler/parse_test.go @@ -92,6 +92,16 @@ func TestParsing(t *testing.T) { }, }, }, + tCase{ + Q: `id == '795c1e56-d1f3-495d-b9cb-d84a56ffb39c'`, + E: []Query{ + Query{ + Field: "id", + Value: "795c1e56-d1f3-495d-b9cb-d84a56ffb39c", + Op: itemEquals, + }, + }, + }, tCase{ Q: `a == 12 and name != 'nandos'`, E: []Query{ diff --git a/test/users/Dockerfile b/test/users/Dockerfile deleted file mode 100644 index 45a7a5a..0000000 --- a/test/users/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM alpine:3.2 -ADD users /users -ENTRYPOINT [ "/users" ] diff --git a/test/users/Makefile b/test/users/Makefile deleted file mode 100644 index ddbb866..0000000 --- a/test/users/Makefile +++ /dev/null @@ -1,22 +0,0 @@ - -GOPATH:=$(shell go env GOPATH) -.PHONY: init -init: - go get -u github.com/golang/protobuf/proto - go get -u github.com/golang/protobuf/protoc-gen-go - go get github.com/micro/micro/v3/cmd/protoc-gen-micro -.PHONY: proto -proto: - protoc --proto_path=. --micro_out=. --go_out=:. proto/users.proto - -.PHONY: build -build: - go build -o users *.go - -.PHONY: test -test: - go test -v ./... -cover - -.PHONY: docker -docker: - docker build . -t users:latest diff --git a/test/users/README.md b/test/users/README.md deleted file mode 100644 index e687e5b..0000000 --- a/test/users/README.md +++ /dev/null @@ -1,73 +0,0 @@ -# Users Service - -A user service for storing accounts and simple auth. - -## Getting started - -``` -micro run github.com/micro/services/users -``` - -## Usage - -User server implements the following RPC Methods - -Users -- Create -- Read -- Update -- Delete -- Search -- UpdatePassword -- Login -- Logout -- ReadSession - - -### Create - -```shell -micro call users Users.Create '{"id": "ff3c06de-9e43-41c7-9bab-578f6b4ad32b", "username": "asim", "email": "asim@example.com", "password": "password1"}' -``` - -### Read - -```shell -micro call users Users.Read '{"id": "ff3c06de-9e43-41c7-9bab-578f6b4ad32b"}' -``` - -### Update - -```shell -micro call users Users.Update '{"id": "ff3c06de-9e43-41c7-9bab-578f6b4ad32b", "username": "asim", "email": "asim+update@example.com"}' -``` - -### Update Password - -```shell -micro call users Users.UpdatePassword '{"userId": "ff3c06de-9e43-41c7-9bab-578f6b4ad32b", "oldPassword": "password1", "newPassword": "newpassword1", "confirmPassword": "newpassword1" }' -``` - -### Delete - -```shell -micro call users Users.Delete '{"id": "ff3c06de-9e43-41c7-9bab-578f6b4ad32b"}' -``` - -### Login - -```shell -micro call users Users.Login '{"username": "asim", "password": "password1"}' -``` - -### Read Session - -```shell -micro call users Users.ReadSession '{"sessionId": "sr7UEBmIMg5hYOgiljnhrd4XLsnalNewBV9KzpZ9aD8w37b3jRmEujGtKGcGlXPg1yYoSHR3RLy66ugglw0tofTNGm57NrNYUHsFxfwuGC6pvCn8BecB7aEF6UxTyVFq"}' -``` - -### Logout - -```shell -micro call users Users.Logout '{"sessionId": "sr7UEBmIMg5hYOgiljnhrd4XLsnalNewBV9KzpZ9aD8w37b3jRmEujGtKGcGlXPg1yYoSHR3RLy66ugglw0tofTNGm57NrNYUHsFxfwuGC6pvCn8BecB7aEF6UxTyVFq"}' -``` diff --git a/test/users/domain/domain.go b/test/users/domain/domain.go deleted file mode 100644 index 471f49f..0000000 --- a/test/users/domain/domain.go +++ /dev/null @@ -1,149 +0,0 @@ -package domain - -import ( - "errors" - "time" - - "github.com/micro/dev/model" - "github.com/micro/micro/v3/service/store" - user "github.com/micro/services/test/users/proto" -) - -type pw struct { - ID string `json:"id"` - Password string `json:"password"` - Salt string `json:"salt"` -} - -type Domain struct { - users model.Model - sessions model.Model - passwords model.Model - - nameIndex model.Index - emailIndex model.Index - idIndex model.Index -} - -func New() *Domain { - nameIndex := model.ByEquality("username") - nameIndex.Unique = true - nameIndex.Order.Type = model.OrderTypeUnordered - - emailIndex := model.ByEquality("email") - emailIndex.Unique = true - emailIndex.Order.Type = model.OrderTypeUnordered - - // @todo there should be a better way to get the default index from model - // than recreating the options here - idIndex := model.ByEquality("id") - idIndex.Order.Type = model.OrderTypeUnordered - - return &Domain{ - users: model.New(store.DefaultStore, "users", model.Indexes(nameIndex, emailIndex), nil), - sessions: model.New(store.DefaultStore, "sessions", nil, nil), - passwords: model.New(store.DefaultStore, "passwords", nil, nil), - nameIndex: nameIndex, - emailIndex: emailIndex, - idIndex: idIndex, - } -} - -func (domain *Domain) CreateSession(sess *user.Session) error { - if sess.Created == 0 { - sess.Created = time.Now().Unix() - } - - if sess.Expires == 0 { - sess.Expires = time.Now().Add(time.Hour * 24 * 7).Unix() - } - - return domain.sessions.Save(sess) -} - -func (domain *Domain) DeleteSession(id string) error { - return domain.sessions.Delete(domain.idIndex.ToQuery(id)) -} - -func (domain *Domain) ReadSession(id string) (*user.Session, error) { - sess := &user.Session{} - // @todo there should be a Read in the model to get rid of this pattern - return sess, domain.sessions.Read(domain.idIndex.ToQuery(id), &sess) -} - -func (domain *Domain) Create(user *user.User, salt string, password string) error { - user.Created = time.Now().Unix() - user.Updated = time.Now().Unix() - err := domain.users.Save(user) - if err != nil { - return err - } - return domain.passwords.Save(pw{ - ID: user.Id, - Password: password, - Salt: salt, - }) -} - -func (domain *Domain) Delete(id string) error { - return domain.users.Delete(domain.idIndex.ToQuery(id)) -} - -func (domain *Domain) Update(user *user.User) error { - user.Updated = time.Now().Unix() - return domain.users.Save(user) -} - -func (domain *Domain) Read(id string) (*user.User, error) { - user := &user.User{} - return user, domain.users.Read(domain.idIndex.ToQuery(id), user) -} - -func (domain *Domain) Search(username, email string, limit, offset int64) ([]*user.User, error) { - var query model.Query - if len(username) > 0 { - query = domain.nameIndex.ToQuery(username) - } else if len(email) > 0 { - query = domain.emailIndex.ToQuery(email) - } else { - return nil, errors.New("username and email cannot be blank") - } - - users := []*user.User{} - return users, domain.users.List(query, &users) -} - -func (domain *Domain) UpdatePassword(id string, salt string, password string) error { - return domain.passwords.Save(pw{ - ID: id, - Password: password, - Salt: salt, - }) -} - -func (domain *Domain) SaltAndPassword(username, email string) (string, string, error) { - var query model.Query - if len(username) > 0 { - query = domain.nameIndex.ToQuery(username) - } else if len(email) > 0 { - query = domain.emailIndex.ToQuery(email) - } else { - return "", "", errors.New("username and email cannot be blank") - } - - user := &user.User{} - err := domain.users.Read(query, &user) - if err != nil { - return "", "", err - } - - query = model.Equals("id", user.Id) - query.Order.Type = model.OrderTypeUnordered - - password := &pw{} - err = domain.passwords.Read(query, password) - if err != nil { - return "", "", err - } - return password.Salt, password.Password, nil -} diff --git a/test/users/generate.go b/test/users/generate.go deleted file mode 100644 index 7d9db91..0000000 --- a/test/users/generate.go +++ /dev/null @@ -1,3 +0,0 @@ -package main - -//go:generate make proto diff --git a/test/users/handler/handler.go b/test/users/handler/handler.go deleted file mode 100644 index 8536485..0000000 --- a/test/users/handler/handler.go +++ /dev/null @@ -1,174 +0,0 @@ -package handler - -import ( - "crypto/rand" - "encoding/base64" - "strings" - "time" - - "github.com/micro/micro/v3/service/errors" - "github.com/micro/services/test/users/domain" - pb "github.com/micro/services/test/users/proto" - "golang.org/x/crypto/bcrypt" - "golang.org/x/net/context" -) - -const ( - x = "cruft123" -) - -var ( - alphanum = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" -) - -func random(i int) string { - bytes := make([]byte, i) - for { - rand.Read(bytes) - for i, b := range bytes { - bytes[i] = alphanum[b%byte(len(alphanum))] - } - return string(bytes) - } - return "ughwhy?!!!" -} - -type Users struct { - domain *domain.Domain -} - -func NewUsers() *Users { - return &Users{ - domain: domain.New(), - } -} - -func (s *Users) Create(ctx context.Context, req *pb.CreateRequest, rsp *pb.CreateResponse) error { - if len(req.Password) < 8 { - return errors.InternalServerError("users.Create.Check", "Password is less than 8 characters") - } - salt := random(16) - h, err := bcrypt.GenerateFromPassword([]byte(x+salt+req.Password), 10) - if err != nil { - return errors.InternalServerError("users.Create", err.Error()) - } - pp := base64.StdEncoding.EncodeToString(h) - - return s.domain.Create(&pb.User{ - Id: req.Id, - Username: strings.ToLower(req.Username), - Email: strings.ToLower(req.Email), - }, salt, pp) -} - -func (s *Users) Read(ctx context.Context, req *pb.ReadRequest, rsp *pb.ReadResponse) error { - user, err := s.domain.Read(req.Id) - if err != nil { - return err - } - rsp.User = user - return nil -} - -func (s *Users) Update(ctx context.Context, req *pb.UpdateRequest, rsp *pb.UpdateResponse) error { - return s.domain.Update(&pb.User{ - Id: req.Id, - Username: strings.ToLower(req.Username), - Email: strings.ToLower(req.Email), - }) -} - -func (s *Users) Delete(ctx context.Context, req *pb.DeleteRequest, rsp *pb.DeleteResponse) error { - return s.domain.Delete(req.Id) -} - -func (s *Users) Search(ctx context.Context, req *pb.SearchRequest, rsp *pb.SearchResponse) error { - users, err := s.domain.Search(req.Username, req.Email, req.Limit, req.Offset) - if err != nil { - return err - } - rsp.Users = users - return nil -} - -func (s *Users) UpdatePassword(ctx context.Context, req *pb.UpdatePasswordRequest, rsp *pb.UpdatePasswordResponse) error { - usr, err := s.domain.Read(req.UserId) - if err != nil { - return errors.InternalServerError("users.updatepassword", err.Error()) - } - if req.NewPassword != req.ConfirmPassword { - return errors.InternalServerError("users.updatepassword", "Passwords don't math") - } - - salt, hashed, err := s.domain.SaltAndPassword(usr.Username, usr.Email) - if err != nil { - return errors.InternalServerError("users.updatepassword", err.Error()) - } - - hh, err := base64.StdEncoding.DecodeString(hashed) - if err != nil { - return errors.InternalServerError("users.updatepassword", err.Error()) - } - - if err := bcrypt.CompareHashAndPassword(hh, []byte(x+salt+req.OldPassword)); err != nil { - return errors.Unauthorized("users.updatepassword", err.Error()) - } - - salt = random(16) - h, err := bcrypt.GenerateFromPassword([]byte(x+salt+req.NewPassword), 10) - if err != nil { - return errors.InternalServerError("users.updatepassword", err.Error()) - } - pp := base64.StdEncoding.EncodeToString(h) - - if err := s.domain.UpdatePassword(req.UserId, salt, pp); err != nil { - return errors.InternalServerError("users.updatepassword", err.Error()) - } - return nil -} - -func (s *Users) Login(ctx context.Context, req *pb.LoginRequest, rsp *pb.LoginResponse) error { - username := strings.ToLower(req.Username) - email := strings.ToLower(req.Email) - - salt, hashed, err := s.domain.SaltAndPassword(username, email) - if err != nil { - return err - } - - hh, err := base64.StdEncoding.DecodeString(hashed) - if err != nil { - return errors.InternalServerError("users.Login", err.Error()) - } - - if err := bcrypt.CompareHashAndPassword(hh, []byte(x+salt+req.Password)); err != nil { - return errors.Unauthorized("users.login", err.Error()) - } - // save session - sess := &pb.Session{ - Id: random(128), - Username: username, - Email: email, - Created: time.Now().Unix(), - Expires: time.Now().Add(time.Hour * 24 * 7).Unix(), - } - - if err := s.domain.CreateSession(sess); err != nil { - return errors.InternalServerError("users.Login", err.Error()) - } - rsp.Session = sess - return nil -} - -func (s *Users) Logout(ctx context.Context, req *pb.LogoutRequest, rsp *pb.LogoutResponse) error { - return s.domain.DeleteSession(req.SessionId) -} - -func (s *Users) ReadSession(ctx context.Context, req *pb.ReadSessionRequest, rsp *pb.ReadSessionResponse) error { - sess, err := s.domain.ReadSession(req.SessionId) - if err != nil { - return err - } - rsp.Session = sess - return nil -} diff --git a/test/users/main.go b/test/users/main.go deleted file mode 100644 index 20ee73e..0000000 --- a/test/users/main.go +++ /dev/null @@ -1,22 +0,0 @@ -package main - -import ( - "github.com/micro/micro/v3/service" - "github.com/micro/micro/v3/service/logger" - "github.com/micro/services/test/users/handler" - proto "github.com/micro/services/test/users/proto" -) - -func main() { - service := service.New( - service.Name("users"), - ) - - service.Init() - - proto.RegisterUsersHandler(service.Server(), handler.NewUsers()) - - if err := service.Run(); err != nil { - logger.Fatal(err) - } -} diff --git a/test/users/micro.mu b/test/users/micro.mu deleted file mode 100644 index 3f68786..0000000 --- a/test/users/micro.mu +++ /dev/null @@ -1 +0,0 @@ -service users diff --git a/test/users/proto/users.pb.go b/test/users/proto/users.pb.go deleted file mode 100644 index e709ffa..0000000 --- a/test/users/proto/users.pb.go +++ /dev/null @@ -1,998 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: proto/users.proto - -package users - -import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - math "math" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package - -type User struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` - Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` - Created int64 `protobuf:"varint,4,opt,name=created,proto3" json:"created,omitempty"` - Updated int64 `protobuf:"varint,5,opt,name=updated,proto3" json:"updated,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *User) Reset() { *m = User{} } -func (m *User) String() string { return proto.CompactTextString(m) } -func (*User) ProtoMessage() {} -func (*User) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{0} -} - -func (m *User) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_User.Unmarshal(m, b) -} -func (m *User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_User.Marshal(b, m, deterministic) -} -func (m *User) XXX_Merge(src proto.Message) { - xxx_messageInfo_User.Merge(m, src) -} -func (m *User) XXX_Size() int { - return xxx_messageInfo_User.Size(m) -} -func (m *User) XXX_DiscardUnknown() { - xxx_messageInfo_User.DiscardUnknown(m) -} - -var xxx_messageInfo_User proto.InternalMessageInfo - -func (m *User) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -func (m *User) GetUsername() string { - if m != nil { - return m.Username - } - return "" -} - -func (m *User) GetEmail() string { - if m != nil { - return m.Email - } - return "" -} - -func (m *User) GetCreated() int64 { - if m != nil { - return m.Created - } - return 0 -} - -func (m *User) GetUpdated() int64 { - if m != nil { - return m.Updated - } - return 0 -} - -type Session struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` - Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` - Created int64 `protobuf:"varint,4,opt,name=created,proto3" json:"created,omitempty"` - Expires int64 `protobuf:"varint,5,opt,name=expires,proto3" json:"expires,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Session) Reset() { *m = Session{} } -func (m *Session) String() string { return proto.CompactTextString(m) } -func (*Session) ProtoMessage() {} -func (*Session) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{1} -} - -func (m *Session) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Session.Unmarshal(m, b) -} -func (m *Session) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Session.Marshal(b, m, deterministic) -} -func (m *Session) XXX_Merge(src proto.Message) { - xxx_messageInfo_Session.Merge(m, src) -} -func (m *Session) XXX_Size() int { - return xxx_messageInfo_Session.Size(m) -} -func (m *Session) XXX_DiscardUnknown() { - xxx_messageInfo_Session.DiscardUnknown(m) -} - -var xxx_messageInfo_Session proto.InternalMessageInfo - -func (m *Session) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -func (m *Session) GetUsername() string { - if m != nil { - return m.Username - } - return "" -} - -func (m *Session) GetEmail() string { - if m != nil { - return m.Email - } - return "" -} - -func (m *Session) GetCreated() int64 { - if m != nil { - return m.Created - } - return 0 -} - -func (m *Session) GetExpires() int64 { - if m != nil { - return m.Expires - } - return 0 -} - -type CreateRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` - Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` - Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CreateRequest) Reset() { *m = CreateRequest{} } -func (m *CreateRequest) String() string { return proto.CompactTextString(m) } -func (*CreateRequest) ProtoMessage() {} -func (*CreateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{2} -} - -func (m *CreateRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateRequest.Unmarshal(m, b) -} -func (m *CreateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateRequest.Marshal(b, m, deterministic) -} -func (m *CreateRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateRequest.Merge(m, src) -} -func (m *CreateRequest) XXX_Size() int { - return xxx_messageInfo_CreateRequest.Size(m) -} -func (m *CreateRequest) XXX_DiscardUnknown() { - xxx_messageInfo_CreateRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateRequest proto.InternalMessageInfo - -func (m *CreateRequest) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -func (m *CreateRequest) GetUsername() string { - if m != nil { - return m.Username - } - return "" -} - -func (m *CreateRequest) GetEmail() string { - if m != nil { - return m.Email - } - return "" -} - -func (m *CreateRequest) GetPassword() string { - if m != nil { - return m.Password - } - return "" -} - -type CreateResponse struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CreateResponse) Reset() { *m = CreateResponse{} } -func (m *CreateResponse) String() string { return proto.CompactTextString(m) } -func (*CreateResponse) ProtoMessage() {} -func (*CreateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{3} -} - -func (m *CreateResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateResponse.Unmarshal(m, b) -} -func (m *CreateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateResponse.Marshal(b, m, deterministic) -} -func (m *CreateResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateResponse.Merge(m, src) -} -func (m *CreateResponse) XXX_Size() int { - return xxx_messageInfo_CreateResponse.Size(m) -} -func (m *CreateResponse) XXX_DiscardUnknown() { - xxx_messageInfo_CreateResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateResponse proto.InternalMessageInfo - -type DeleteRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeleteRequest) Reset() { *m = DeleteRequest{} } -func (m *DeleteRequest) String() string { return proto.CompactTextString(m) } -func (*DeleteRequest) ProtoMessage() {} -func (*DeleteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{4} -} - -func (m *DeleteRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteRequest.Unmarshal(m, b) -} -func (m *DeleteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteRequest.Marshal(b, m, deterministic) -} -func (m *DeleteRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteRequest.Merge(m, src) -} -func (m *DeleteRequest) XXX_Size() int { - return xxx_messageInfo_DeleteRequest.Size(m) -} -func (m *DeleteRequest) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_DeleteRequest proto.InternalMessageInfo - -func (m *DeleteRequest) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -type DeleteResponse struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeleteResponse) Reset() { *m = DeleteResponse{} } -func (m *DeleteResponse) String() string { return proto.CompactTextString(m) } -func (*DeleteResponse) ProtoMessage() {} -func (*DeleteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{5} -} - -func (m *DeleteResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteResponse.Unmarshal(m, b) -} -func (m *DeleteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteResponse.Marshal(b, m, deterministic) -} -func (m *DeleteResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteResponse.Merge(m, src) -} -func (m *DeleteResponse) XXX_Size() int { - return xxx_messageInfo_DeleteResponse.Size(m) -} -func (m *DeleteResponse) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_DeleteResponse proto.InternalMessageInfo - -type ReadRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ReadRequest) Reset() { *m = ReadRequest{} } -func (m *ReadRequest) String() string { return proto.CompactTextString(m) } -func (*ReadRequest) ProtoMessage() {} -func (*ReadRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{6} -} - -func (m *ReadRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ReadRequest.Unmarshal(m, b) -} -func (m *ReadRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ReadRequest.Marshal(b, m, deterministic) -} -func (m *ReadRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ReadRequest.Merge(m, src) -} -func (m *ReadRequest) XXX_Size() int { - return xxx_messageInfo_ReadRequest.Size(m) -} -func (m *ReadRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ReadRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ReadRequest proto.InternalMessageInfo - -func (m *ReadRequest) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -type ReadResponse struct { - User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ReadResponse) Reset() { *m = ReadResponse{} } -func (m *ReadResponse) String() string { return proto.CompactTextString(m) } -func (*ReadResponse) ProtoMessage() {} -func (*ReadResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{7} -} - -func (m *ReadResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ReadResponse.Unmarshal(m, b) -} -func (m *ReadResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ReadResponse.Marshal(b, m, deterministic) -} -func (m *ReadResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ReadResponse.Merge(m, src) -} -func (m *ReadResponse) XXX_Size() int { - return xxx_messageInfo_ReadResponse.Size(m) -} -func (m *ReadResponse) XXX_DiscardUnknown() { - xxx_messageInfo_ReadResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_ReadResponse proto.InternalMessageInfo - -func (m *ReadResponse) GetUser() *User { - if m != nil { - return m.User - } - return nil -} - -type UpdateRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` - Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *UpdateRequest) Reset() { *m = UpdateRequest{} } -func (m *UpdateRequest) String() string { return proto.CompactTextString(m) } -func (*UpdateRequest) ProtoMessage() {} -func (*UpdateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{8} -} - -func (m *UpdateRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateRequest.Unmarshal(m, b) -} -func (m *UpdateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateRequest.Marshal(b, m, deterministic) -} -func (m *UpdateRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateRequest.Merge(m, src) -} -func (m *UpdateRequest) XXX_Size() int { - return xxx_messageInfo_UpdateRequest.Size(m) -} -func (m *UpdateRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UpdateRequest proto.InternalMessageInfo - -func (m *UpdateRequest) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -func (m *UpdateRequest) GetUsername() string { - if m != nil { - return m.Username - } - return "" -} - -func (m *UpdateRequest) GetEmail() string { - if m != nil { - return m.Email - } - return "" -} - -type UpdateResponse struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *UpdateResponse) Reset() { *m = UpdateResponse{} } -func (m *UpdateResponse) String() string { return proto.CompactTextString(m) } -func (*UpdateResponse) ProtoMessage() {} -func (*UpdateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{9} -} - -func (m *UpdateResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateResponse.Unmarshal(m, b) -} -func (m *UpdateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateResponse.Marshal(b, m, deterministic) -} -func (m *UpdateResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateResponse.Merge(m, src) -} -func (m *UpdateResponse) XXX_Size() int { - return xxx_messageInfo_UpdateResponse.Size(m) -} -func (m *UpdateResponse) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_UpdateResponse proto.InternalMessageInfo - -type UpdatePasswordRequest struct { - UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId,omitempty"` - OldPassword string `protobuf:"bytes,2,opt,name=oldPassword,proto3" json:"oldPassword,omitempty"` - NewPassword string `protobuf:"bytes,3,opt,name=newPassword,proto3" json:"newPassword,omitempty"` - ConfirmPassword string `protobuf:"bytes,4,opt,name=confirm_password,json=confirmPassword,proto3" json:"confirm_password,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *UpdatePasswordRequest) Reset() { *m = UpdatePasswordRequest{} } -func (m *UpdatePasswordRequest) String() string { return proto.CompactTextString(m) } -func (*UpdatePasswordRequest) ProtoMessage() {} -func (*UpdatePasswordRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{10} -} - -func (m *UpdatePasswordRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdatePasswordRequest.Unmarshal(m, b) -} -func (m *UpdatePasswordRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdatePasswordRequest.Marshal(b, m, deterministic) -} -func (m *UpdatePasswordRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdatePasswordRequest.Merge(m, src) -} -func (m *UpdatePasswordRequest) XXX_Size() int { - return xxx_messageInfo_UpdatePasswordRequest.Size(m) -} -func (m *UpdatePasswordRequest) XXX_DiscardUnknown() { - xxx_messageInfo_UpdatePasswordRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_UpdatePasswordRequest proto.InternalMessageInfo - -func (m *UpdatePasswordRequest) GetUserId() string { - if m != nil { - return m.UserId - } - return "" -} - -func (m *UpdatePasswordRequest) GetOldPassword() string { - if m != nil { - return m.OldPassword - } - return "" -} - -func (m *UpdatePasswordRequest) GetNewPassword() string { - if m != nil { - return m.NewPassword - } - return "" -} - -func (m *UpdatePasswordRequest) GetConfirmPassword() string { - if m != nil { - return m.ConfirmPassword - } - return "" -} - -type UpdatePasswordResponse struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *UpdatePasswordResponse) Reset() { *m = UpdatePasswordResponse{} } -func (m *UpdatePasswordResponse) String() string { return proto.CompactTextString(m) } -func (*UpdatePasswordResponse) ProtoMessage() {} -func (*UpdatePasswordResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{11} -} - -func (m *UpdatePasswordResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdatePasswordResponse.Unmarshal(m, b) -} -func (m *UpdatePasswordResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdatePasswordResponse.Marshal(b, m, deterministic) -} -func (m *UpdatePasswordResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdatePasswordResponse.Merge(m, src) -} -func (m *UpdatePasswordResponse) XXX_Size() int { - return xxx_messageInfo_UpdatePasswordResponse.Size(m) -} -func (m *UpdatePasswordResponse) XXX_DiscardUnknown() { - xxx_messageInfo_UpdatePasswordResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_UpdatePasswordResponse proto.InternalMessageInfo - -type SearchRequest struct { - Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` - Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` - Limit int64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` - Offset int64 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SearchRequest) Reset() { *m = SearchRequest{} } -func (m *SearchRequest) String() string { return proto.CompactTextString(m) } -func (*SearchRequest) ProtoMessage() {} -func (*SearchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{12} -} - -func (m *SearchRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SearchRequest.Unmarshal(m, b) -} -func (m *SearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SearchRequest.Marshal(b, m, deterministic) -} -func (m *SearchRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_SearchRequest.Merge(m, src) -} -func (m *SearchRequest) XXX_Size() int { - return xxx_messageInfo_SearchRequest.Size(m) -} -func (m *SearchRequest) XXX_DiscardUnknown() { - xxx_messageInfo_SearchRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_SearchRequest proto.InternalMessageInfo - -func (m *SearchRequest) GetUsername() string { - if m != nil { - return m.Username - } - return "" -} - -func (m *SearchRequest) GetEmail() string { - if m != nil { - return m.Email - } - return "" -} - -func (m *SearchRequest) GetLimit() int64 { - if m != nil { - return m.Limit - } - return 0 -} - -func (m *SearchRequest) GetOffset() int64 { - if m != nil { - return m.Offset - } - return 0 -} - -type SearchResponse struct { - Users []*User `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SearchResponse) Reset() { *m = SearchResponse{} } -func (m *SearchResponse) String() string { return proto.CompactTextString(m) } -func (*SearchResponse) ProtoMessage() {} -func (*SearchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{13} -} - -func (m *SearchResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SearchResponse.Unmarshal(m, b) -} -func (m *SearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SearchResponse.Marshal(b, m, deterministic) -} -func (m *SearchResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_SearchResponse.Merge(m, src) -} -func (m *SearchResponse) XXX_Size() int { - return xxx_messageInfo_SearchResponse.Size(m) -} -func (m *SearchResponse) XXX_DiscardUnknown() { - xxx_messageInfo_SearchResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_SearchResponse proto.InternalMessageInfo - -func (m *SearchResponse) GetUsers() []*User { - if m != nil { - return m.Users - } - return nil -} - -type ReadSessionRequest struct { - SessionId string `protobuf:"bytes,1,opt,name=sessionId,proto3" json:"sessionId,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ReadSessionRequest) Reset() { *m = ReadSessionRequest{} } -func (m *ReadSessionRequest) String() string { return proto.CompactTextString(m) } -func (*ReadSessionRequest) ProtoMessage() {} -func (*ReadSessionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{14} -} - -func (m *ReadSessionRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ReadSessionRequest.Unmarshal(m, b) -} -func (m *ReadSessionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ReadSessionRequest.Marshal(b, m, deterministic) -} -func (m *ReadSessionRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ReadSessionRequest.Merge(m, src) -} -func (m *ReadSessionRequest) XXX_Size() int { - return xxx_messageInfo_ReadSessionRequest.Size(m) -} -func (m *ReadSessionRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ReadSessionRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ReadSessionRequest proto.InternalMessageInfo - -func (m *ReadSessionRequest) GetSessionId() string { - if m != nil { - return m.SessionId - } - return "" -} - -type ReadSessionResponse struct { - Session *Session `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ReadSessionResponse) Reset() { *m = ReadSessionResponse{} } -func (m *ReadSessionResponse) String() string { return proto.CompactTextString(m) } -func (*ReadSessionResponse) ProtoMessage() {} -func (*ReadSessionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{15} -} - -func (m *ReadSessionResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ReadSessionResponse.Unmarshal(m, b) -} -func (m *ReadSessionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ReadSessionResponse.Marshal(b, m, deterministic) -} -func (m *ReadSessionResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ReadSessionResponse.Merge(m, src) -} -func (m *ReadSessionResponse) XXX_Size() int { - return xxx_messageInfo_ReadSessionResponse.Size(m) -} -func (m *ReadSessionResponse) XXX_DiscardUnknown() { - xxx_messageInfo_ReadSessionResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_ReadSessionResponse proto.InternalMessageInfo - -func (m *ReadSessionResponse) GetSession() *Session { - if m != nil { - return m.Session - } - return nil -} - -type LoginRequest struct { - Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` - Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` - Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LoginRequest) Reset() { *m = LoginRequest{} } -func (m *LoginRequest) String() string { return proto.CompactTextString(m) } -func (*LoginRequest) ProtoMessage() {} -func (*LoginRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{16} -} - -func (m *LoginRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LoginRequest.Unmarshal(m, b) -} -func (m *LoginRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LoginRequest.Marshal(b, m, deterministic) -} -func (m *LoginRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_LoginRequest.Merge(m, src) -} -func (m *LoginRequest) XXX_Size() int { - return xxx_messageInfo_LoginRequest.Size(m) -} -func (m *LoginRequest) XXX_DiscardUnknown() { - xxx_messageInfo_LoginRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_LoginRequest proto.InternalMessageInfo - -func (m *LoginRequest) GetUsername() string { - if m != nil { - return m.Username - } - return "" -} - -func (m *LoginRequest) GetEmail() string { - if m != nil { - return m.Email - } - return "" -} - -func (m *LoginRequest) GetPassword() string { - if m != nil { - return m.Password - } - return "" -} - -type LoginResponse struct { - Session *Session `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LoginResponse) Reset() { *m = LoginResponse{} } -func (m *LoginResponse) String() string { return proto.CompactTextString(m) } -func (*LoginResponse) ProtoMessage() {} -func (*LoginResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{17} -} - -func (m *LoginResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LoginResponse.Unmarshal(m, b) -} -func (m *LoginResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LoginResponse.Marshal(b, m, deterministic) -} -func (m *LoginResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_LoginResponse.Merge(m, src) -} -func (m *LoginResponse) XXX_Size() int { - return xxx_messageInfo_LoginResponse.Size(m) -} -func (m *LoginResponse) XXX_DiscardUnknown() { - xxx_messageInfo_LoginResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_LoginResponse proto.InternalMessageInfo - -func (m *LoginResponse) GetSession() *Session { - if m != nil { - return m.Session - } - return nil -} - -type LogoutRequest struct { - SessionId string `protobuf:"bytes,1,opt,name=sessionId,proto3" json:"sessionId,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LogoutRequest) Reset() { *m = LogoutRequest{} } -func (m *LogoutRequest) String() string { return proto.CompactTextString(m) } -func (*LogoutRequest) ProtoMessage() {} -func (*LogoutRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{18} -} - -func (m *LogoutRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LogoutRequest.Unmarshal(m, b) -} -func (m *LogoutRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LogoutRequest.Marshal(b, m, deterministic) -} -func (m *LogoutRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_LogoutRequest.Merge(m, src) -} -func (m *LogoutRequest) XXX_Size() int { - return xxx_messageInfo_LogoutRequest.Size(m) -} -func (m *LogoutRequest) XXX_DiscardUnknown() { - xxx_messageInfo_LogoutRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_LogoutRequest proto.InternalMessageInfo - -func (m *LogoutRequest) GetSessionId() string { - if m != nil { - return m.SessionId - } - return "" -} - -type LogoutResponse struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LogoutResponse) Reset() { *m = LogoutResponse{} } -func (m *LogoutResponse) String() string { return proto.CompactTextString(m) } -func (*LogoutResponse) ProtoMessage() {} -func (*LogoutResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_b1c161a4c7514913, []int{19} -} - -func (m *LogoutResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LogoutResponse.Unmarshal(m, b) -} -func (m *LogoutResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LogoutResponse.Marshal(b, m, deterministic) -} -func (m *LogoutResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_LogoutResponse.Merge(m, src) -} -func (m *LogoutResponse) XXX_Size() int { - return xxx_messageInfo_LogoutResponse.Size(m) -} -func (m *LogoutResponse) XXX_DiscardUnknown() { - xxx_messageInfo_LogoutResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_LogoutResponse proto.InternalMessageInfo - -func init() { - proto.RegisterType((*User)(nil), "User") - proto.RegisterType((*Session)(nil), "Session") - proto.RegisterType((*CreateRequest)(nil), "CreateRequest") - proto.RegisterType((*CreateResponse)(nil), "CreateResponse") - proto.RegisterType((*DeleteRequest)(nil), "DeleteRequest") - proto.RegisterType((*DeleteResponse)(nil), "DeleteResponse") - proto.RegisterType((*ReadRequest)(nil), "ReadRequest") - proto.RegisterType((*ReadResponse)(nil), "ReadResponse") - proto.RegisterType((*UpdateRequest)(nil), "UpdateRequest") - proto.RegisterType((*UpdateResponse)(nil), "UpdateResponse") - proto.RegisterType((*UpdatePasswordRequest)(nil), "UpdatePasswordRequest") - proto.RegisterType((*UpdatePasswordResponse)(nil), "UpdatePasswordResponse") - proto.RegisterType((*SearchRequest)(nil), "SearchRequest") - proto.RegisterType((*SearchResponse)(nil), "SearchResponse") - proto.RegisterType((*ReadSessionRequest)(nil), "ReadSessionRequest") - proto.RegisterType((*ReadSessionResponse)(nil), "ReadSessionResponse") - proto.RegisterType((*LoginRequest)(nil), "LoginRequest") - proto.RegisterType((*LoginResponse)(nil), "LoginResponse") - proto.RegisterType((*LogoutRequest)(nil), "LogoutRequest") - proto.RegisterType((*LogoutResponse)(nil), "LogoutResponse") -} - -func init() { - proto.RegisterFile("proto/users.proto", fileDescriptor_b1c161a4c7514913) -} - -var fileDescriptor_b1c161a4c7514913 = []byte{ - // 600 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x55, 0xcf, 0x6e, 0xd3, 0x4e, - 0x10, 0x4e, 0xe2, 0x38, 0x69, 0x27, 0x71, 0xda, 0xdf, 0xb6, 0xbf, 0x60, 0x0c, 0x88, 0x6a, 0x25, - 0xa4, 0x56, 0xa8, 0x8b, 0x94, 0x9e, 0xe0, 0x5a, 0x2e, 0x48, 0x1c, 0xc0, 0x55, 0x6f, 0x48, 0xc8, - 0x24, 0x1b, 0xb0, 0x14, 0x7b, 0x8d, 0xd7, 0x51, 0x39, 0x20, 0xf1, 0x26, 0x3c, 0x08, 0x4f, 0xc7, - 0xec, 0xbf, 0xc4, 0x36, 0x8d, 0x04, 0xa8, 0xdc, 0x3c, 0x33, 0xdf, 0xec, 0x7c, 0x3b, 0x33, 0xdf, - 0x1a, 0xfe, 0x2b, 0x4a, 0x51, 0x89, 0x67, 0x6b, 0xc9, 0x4b, 0xc9, 0xf4, 0x37, 0xfd, 0x0a, 0xfd, - 0x6b, 0x34, 0xc9, 0x04, 0x7a, 0xe9, 0x22, 0xec, 0x9e, 0x74, 0x4f, 0xf7, 0x63, 0xfc, 0x22, 0x11, - 0xec, 0x29, 0x58, 0x9e, 0x64, 0x3c, 0xec, 0x69, 0xef, 0xc6, 0x26, 0xc7, 0xe0, 0xf3, 0x2c, 0x49, - 0x57, 0xa1, 0xa7, 0x03, 0xc6, 0x20, 0x21, 0x0c, 0xe7, 0x25, 0x4f, 0x2a, 0xbe, 0x08, 0xfb, 0xe8, - 0xf7, 0x62, 0x67, 0xaa, 0xc8, 0xba, 0x58, 0xe8, 0x88, 0x6f, 0x22, 0xd6, 0xa4, 0xdf, 0x60, 0x78, - 0xc5, 0xa5, 0x4c, 0x45, 0xfe, 0xaf, 0x09, 0xf0, 0x2f, 0x45, 0x5a, 0x72, 0xe9, 0x08, 0x58, 0x93, - 0x66, 0x10, 0x5c, 0x6a, 0x50, 0xcc, 0x3f, 0xaf, 0xb9, 0xac, 0xee, 0x80, 0x06, 0x66, 0x14, 0x89, - 0x94, 0x37, 0xa2, 0x34, 0x3c, 0x30, 0xc3, 0xd9, 0xf4, 0x10, 0x26, 0xae, 0x9c, 0x2c, 0x44, 0x2e, - 0x39, 0x7d, 0x0c, 0xc1, 0x4b, 0xbe, 0xe2, 0x3b, 0x09, 0xa8, 0x14, 0x07, 0xb0, 0x29, 0x8f, 0x60, - 0x14, 0xf3, 0x64, 0xb1, 0x2b, 0xe1, 0x0c, 0xc6, 0x26, 0x6c, 0xe0, 0xe4, 0x3e, 0xf4, 0x15, 0x63, - 0x8d, 0x18, 0xcd, 0x7c, 0xa6, 0xc6, 0x1d, 0x6b, 0x17, 0x7d, 0x0b, 0xc1, 0xb5, 0x9e, 0xc4, 0x9d, - 0xdd, 0x5e, 0xd1, 0x75, 0x47, 0x5a, 0xba, 0xdf, 0xbb, 0xf0, 0xbf, 0x71, 0xbd, 0xb1, 0x6d, 0x70, - 0xd5, 0xa6, 0x30, 0x50, 0xa7, 0xbd, 0x72, 0x15, 0xad, 0x45, 0x4e, 0x60, 0x24, 0x56, 0x0b, 0x87, - 0xb6, 0x85, 0xeb, 0x2e, 0x85, 0xc8, 0xf9, 0xcd, 0x06, 0x61, 0x18, 0xd4, 0x5d, 0xe4, 0x0c, 0x0e, - 0xe7, 0x22, 0x5f, 0xa6, 0x65, 0xf6, 0xbe, 0x35, 0x8d, 0x03, 0xeb, 0x77, 0x50, 0x1a, 0xc2, 0xb4, - 0xcd, 0xcf, 0x52, 0x17, 0x10, 0x5c, 0xf1, 0xa4, 0x9c, 0x7f, 0x72, 0x8c, 0xeb, 0xfd, 0xe8, 0xee, - 0xea, 0x47, 0xaf, 0xbe, 0x0d, 0xe8, 0x5d, 0xa5, 0x59, 0x5a, 0x69, 0x8e, 0x5e, 0x6c, 0x0c, 0x75, - 0x73, 0xb1, 0x5c, 0x4a, 0x5e, 0xd9, 0x4d, 0xb5, 0x16, 0x3d, 0x87, 0x89, 0x2b, 0x68, 0xa7, 0xf7, - 0x00, 0x7c, 0x2d, 0x57, 0x2c, 0xe7, 0x6d, 0xc7, 0x67, 0x7c, 0x74, 0x06, 0x44, 0x8d, 0xda, 0x4a, - 0xc8, 0x91, 0x7c, 0x08, 0xfb, 0xd2, 0x78, 0x36, 0x9d, 0xdd, 0x3a, 0xe8, 0x73, 0x38, 0x6a, 0xe4, - 0xd8, 0x3a, 0x14, 0x86, 0x16, 0x63, 0x17, 0x65, 0x8f, 0x39, 0x88, 0x0b, 0xd0, 0x77, 0x30, 0x7e, - 0x2d, 0x3e, 0xa6, 0xf9, 0xdf, 0x77, 0xa3, 0xae, 0x0d, 0xaf, 0xa5, 0x8d, 0x0b, 0x08, 0xec, 0xe9, - 0x7f, 0x40, 0xe9, 0x5c, 0x27, 0x89, 0x75, 0xf5, 0x7b, 0x97, 0xc7, 0xed, 0x74, 0x70, 0x53, 0x64, - 0xf6, 0xc3, 0x03, 0x5f, 0xb5, 0x54, 0x92, 0xa7, 0x30, 0x30, 0xda, 0x24, 0x13, 0xd6, 0x78, 0x13, - 0xa2, 0x03, 0xd6, 0x12, 0x6d, 0x87, 0x3c, 0x81, 0xbe, 0xea, 0x22, 0x19, 0xb3, 0x9a, 0x14, 0xa3, - 0x80, 0xd5, 0x95, 0x87, 0x30, 0x3c, 0xd3, 0xac, 0x16, 0x9e, 0xd9, 0x50, 0x1a, 0x9e, 0xd9, 0x92, - 0x89, 0x06, 0x1b, 0xa5, 0x23, 0xb8, 0xf1, 0x26, 0x20, 0xb8, 0xf5, 0x04, 0x68, 0xb0, 0xd9, 0x14, - 0x04, 0x37, 0x76, 0x14, 0xc1, 0xcd, 0x15, 0x42, 0xf0, 0xa5, 0x13, 0xe5, 0x46, 0x1e, 0x53, 0x76, - 0xab, 0x24, 0xa3, 0x7b, 0x6c, 0x87, 0x14, 0x3a, 0xe4, 0x14, 0x7c, 0x3d, 0x1f, 0x12, 0xb0, 0xfa, - 0x16, 0x44, 0x13, 0xd6, 0x18, 0x9b, 0xe1, 0x66, 0xba, 0x4c, 0x74, 0x6c, 0x3b, 0x1d, 0xe4, 0xd6, - 0x6c, 0x3f, 0x82, 0x5f, 0x98, 0xd7, 0xcc, 0xfd, 0x06, 0x8e, 0xd8, 0xaf, 0x1b, 0x1d, 0x1d, 0xb3, - 0x5b, 0x56, 0x96, 0x76, 0x3e, 0x0c, 0xf4, 0x3f, 0xec, 0xe2, 0x67, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xc7, 0x99, 0xc1, 0x0c, 0xd8, 0x06, 0x00, 0x00, -} diff --git a/test/users/proto/users.pb.micro.go b/test/users/proto/users.pb.micro.go deleted file mode 100644 index 0e48876..0000000 --- a/test/users/proto/users.pb.micro.go +++ /dev/null @@ -1,229 +0,0 @@ -// Code generated by protoc-gen-micro. DO NOT EDIT. -// source: proto/users.proto - -package users - -import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - math "math" -) - -import ( - context "context" - api "github.com/micro/micro/v3/service/api" - client "github.com/micro/micro/v3/service/client" - server "github.com/micro/micro/v3/service/server" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package - -// Reference imports to suppress errors if they are not otherwise used. -var _ api.Endpoint -var _ context.Context -var _ client.Option -var _ server.Option - -// Api Endpoints for Users service - -func NewUsersEndpoints() []*api.Endpoint { - return []*api.Endpoint{} -} - -// Client API for Users service - -type UsersService interface { - Create(ctx context.Context, in *CreateRequest, opts ...client.CallOption) (*CreateResponse, error) - Read(ctx context.Context, in *ReadRequest, opts ...client.CallOption) (*ReadResponse, error) - Update(ctx context.Context, in *UpdateRequest, opts ...client.CallOption) (*UpdateResponse, error) - Delete(ctx context.Context, in *DeleteRequest, opts ...client.CallOption) (*DeleteResponse, error) - Search(ctx context.Context, in *SearchRequest, opts ...client.CallOption) (*SearchResponse, error) - UpdatePassword(ctx context.Context, in *UpdatePasswordRequest, opts ...client.CallOption) (*UpdatePasswordResponse, error) - Login(ctx context.Context, in *LoginRequest, opts ...client.CallOption) (*LoginResponse, error) - Logout(ctx context.Context, in *LogoutRequest, opts ...client.CallOption) (*LogoutResponse, error) - ReadSession(ctx context.Context, in *ReadSessionRequest, opts ...client.CallOption) (*ReadSessionResponse, error) -} - -type usersService struct { - c client.Client - name string -} - -func NewUsersService(name string, c client.Client) UsersService { - return &usersService{ - c: c, - name: name, - } -} - -func (c *usersService) Create(ctx context.Context, in *CreateRequest, opts ...client.CallOption) (*CreateResponse, error) { - req := c.c.NewRequest(c.name, "Users.Create", in) - out := new(CreateResponse) - err := c.c.Call(ctx, req, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *usersService) Read(ctx context.Context, in *ReadRequest, opts ...client.CallOption) (*ReadResponse, error) { - req := c.c.NewRequest(c.name, "Users.Read", in) - out := new(ReadResponse) - err := c.c.Call(ctx, req, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *usersService) Update(ctx context.Context, in *UpdateRequest, opts ...client.CallOption) (*UpdateResponse, error) { - req := c.c.NewRequest(c.name, "Users.Update", in) - out := new(UpdateResponse) - err := c.c.Call(ctx, req, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *usersService) Delete(ctx context.Context, in *DeleteRequest, opts ...client.CallOption) (*DeleteResponse, error) { - req := c.c.NewRequest(c.name, "Users.Delete", in) - out := new(DeleteResponse) - err := c.c.Call(ctx, req, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *usersService) Search(ctx context.Context, in *SearchRequest, opts ...client.CallOption) (*SearchResponse, error) { - req := c.c.NewRequest(c.name, "Users.Search", in) - out := new(SearchResponse) - err := c.c.Call(ctx, req, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *usersService) UpdatePassword(ctx context.Context, in *UpdatePasswordRequest, opts ...client.CallOption) (*UpdatePasswordResponse, error) { - req := c.c.NewRequest(c.name, "Users.UpdatePassword", in) - out := new(UpdatePasswordResponse) - err := c.c.Call(ctx, req, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *usersService) Login(ctx context.Context, in *LoginRequest, opts ...client.CallOption) (*LoginResponse, error) { - req := c.c.NewRequest(c.name, "Users.Login", in) - out := new(LoginResponse) - err := c.c.Call(ctx, req, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *usersService) Logout(ctx context.Context, in *LogoutRequest, opts ...client.CallOption) (*LogoutResponse, error) { - req := c.c.NewRequest(c.name, "Users.Logout", in) - out := new(LogoutResponse) - err := c.c.Call(ctx, req, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *usersService) ReadSession(ctx context.Context, in *ReadSessionRequest, opts ...client.CallOption) (*ReadSessionResponse, error) { - req := c.c.NewRequest(c.name, "Users.ReadSession", in) - out := new(ReadSessionResponse) - err := c.c.Call(ctx, req, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// Server API for Users service - -type UsersHandler interface { - Create(context.Context, *CreateRequest, *CreateResponse) error - Read(context.Context, *ReadRequest, *ReadResponse) error - Update(context.Context, *UpdateRequest, *UpdateResponse) error - Delete(context.Context, *DeleteRequest, *DeleteResponse) error - Search(context.Context, *SearchRequest, *SearchResponse) error - UpdatePassword(context.Context, *UpdatePasswordRequest, *UpdatePasswordResponse) error - Login(context.Context, *LoginRequest, *LoginResponse) error - Logout(context.Context, *LogoutRequest, *LogoutResponse) error - ReadSession(context.Context, *ReadSessionRequest, *ReadSessionResponse) error -} - -func RegisterUsersHandler(s server.Server, hdlr UsersHandler, opts ...server.HandlerOption) error { - type users interface { - Create(ctx context.Context, in *CreateRequest, out *CreateResponse) error - Read(ctx context.Context, in *ReadRequest, out *ReadResponse) error - Update(ctx context.Context, in *UpdateRequest, out *UpdateResponse) error - Delete(ctx context.Context, in *DeleteRequest, out *DeleteResponse) error - Search(ctx context.Context, in *SearchRequest, out *SearchResponse) error - UpdatePassword(ctx context.Context, in *UpdatePasswordRequest, out *UpdatePasswordResponse) error - Login(ctx context.Context, in *LoginRequest, out *LoginResponse) error - Logout(ctx context.Context, in *LogoutRequest, out *LogoutResponse) error - ReadSession(ctx context.Context, in *ReadSessionRequest, out *ReadSessionResponse) error - } - type Users struct { - users - } - h := &usersHandler{hdlr} - return s.Handle(s.NewHandler(&Users{h}, opts...)) -} - -type usersHandler struct { - UsersHandler -} - -func (h *usersHandler) Create(ctx context.Context, in *CreateRequest, out *CreateResponse) error { - return h.UsersHandler.Create(ctx, in, out) -} - -func (h *usersHandler) Read(ctx context.Context, in *ReadRequest, out *ReadResponse) error { - return h.UsersHandler.Read(ctx, in, out) -} - -func (h *usersHandler) Update(ctx context.Context, in *UpdateRequest, out *UpdateResponse) error { - return h.UsersHandler.Update(ctx, in, out) -} - -func (h *usersHandler) Delete(ctx context.Context, in *DeleteRequest, out *DeleteResponse) error { - return h.UsersHandler.Delete(ctx, in, out) -} - -func (h *usersHandler) Search(ctx context.Context, in *SearchRequest, out *SearchResponse) error { - return h.UsersHandler.Search(ctx, in, out) -} - -func (h *usersHandler) UpdatePassword(ctx context.Context, in *UpdatePasswordRequest, out *UpdatePasswordResponse) error { - return h.UsersHandler.UpdatePassword(ctx, in, out) -} - -func (h *usersHandler) Login(ctx context.Context, in *LoginRequest, out *LoginResponse) error { - return h.UsersHandler.Login(ctx, in, out) -} - -func (h *usersHandler) Logout(ctx context.Context, in *LogoutRequest, out *LogoutResponse) error { - return h.UsersHandler.Logout(ctx, in, out) -} - -func (h *usersHandler) ReadSession(ctx context.Context, in *ReadSessionRequest, out *ReadSessionResponse) error { - return h.UsersHandler.ReadSession(ctx, in, out) -} diff --git a/test/users/proto/users.proto b/test/users/proto/users.proto deleted file mode 100644 index 8d9d0ce..0000000 --- a/test/users/proto/users.proto +++ /dev/null @@ -1,110 +0,0 @@ -syntax = "proto3"; - -service Users { - rpc Create(CreateRequest) returns (CreateResponse) {} - rpc Read(ReadRequest) returns (ReadResponse) {} - rpc Update(UpdateRequest) returns (UpdateResponse) {} - rpc Delete(DeleteRequest) returns (DeleteResponse) {} - rpc Search(SearchRequest) returns (SearchResponse) {} - rpc UpdatePassword(UpdatePasswordRequest) returns (UpdatePasswordResponse) {} - rpc Login(LoginRequest) returns (LoginResponse) {} - rpc Logout(LogoutRequest) returns (LogoutResponse) {} - rpc ReadSession(ReadSessionRequest) returns(ReadSessionResponse) {} -} - -message User { - string id = 1; // uuid - string username = 2; // alphanumeric user or org - string email = 3; - int64 created = 4; // unix - int64 updated = 5; // unix -} - -message Session { - string id = 1; - string username = 2; - string email = 3; - int64 created = 4; // unix - int64 expires = 5; // unix -} - -message CreateRequest { - string id = 1; // uuid - string username = 2; // alphanumeric user or org - string email = 3; - string password = 4; -} - -message CreateResponse { -} - -message DeleteRequest { - string id = 1; -} - -message DeleteResponse { -} - -message ReadRequest { - string id = 1; -} - -message ReadResponse { - User user = 1; -} - -message UpdateRequest { - string id = 1; // uuid - string username = 2; // alphanumeric user or org - string email = 3; -} - -message UpdateResponse { -} - -message UpdatePasswordRequest { - string userId = 1; - string oldPassword = 2; - string newPassword = 3; - string confirm_password = 4; -} - -message UpdatePasswordResponse { -} - -message SearchRequest { - string username = 1; - string email = 2; - int64 limit = 3; - int64 offset = 4; -} - -message SearchResponse { - repeated User users = 1; -} - -message ReadSessionRequest { - string sessionId = 1; -} - -message ReadSessionResponse { - Session session = 1; -} - -message LoginRequest { - string username = 1; - string email = 2; - string password = 3; -} - -message LoginResponse { - Session session = 1; -} - -message LogoutRequest { - string sessionId = 1; -} - -message LogoutResponse { -} - diff --git a/user/domain/domain.go b/user/domain/domain.go index fee4865..19698d0 100644 --- a/user/domain/domain.go +++ b/user/domain/domain.go @@ -1,10 +1,15 @@ package domain import ( + "context" + "encoding/json" "errors" + "fmt" "time" - "github.com/micro/micro/v3/service/model" + _struct "github.com/golang/protobuf/ptypes/struct" + "github.com/micro/micro/v3/service/logger" + db "github.com/micro/services/db/proto" user "github.com/micro/services/user/proto" ) @@ -15,42 +20,16 @@ type pw struct { } type Domain struct { - user model.Model - sessions model.Model - passwords model.Model - - nameIndex model.Index - emailIndex model.Index - idIndex model.Index + db db.DbService } -func New() *Domain { - nameIndex := model.ByEquality("username") - nameIndex.Unique = true - nameIndex.Order.Type = model.OrderTypeUnordered - - emailIndex := model.ByEquality("email") - emailIndex.Unique = true - emailIndex.Order.Type = model.OrderTypeUnordered - - // @todo there should be a better way to get the default index from model - // than recreating the options here - idIndex := model.ByEquality("id") - idIndex.Order.Type = model.OrderTypeUnordered - +func New(db db.DbService) *Domain { return &Domain{ - user: model.New(user.Account{}, &model.Options{ - Indexes: []model.Index{nameIndex, emailIndex}, - }), - sessions: model.New(user.Session{}, nil), - passwords: model.New(pw{}, nil), - nameIndex: nameIndex, - emailIndex: emailIndex, - idIndex: idIndex, + db: db, } } -func (domain *Domain) CreateSession(sess *user.Session) error { +func (domain *Domain) CreateSession(ctx context.Context, sess *user.Session) error { if sess.Created == 0 { sess.Created = time.Now().Unix() } @@ -59,92 +38,202 @@ func (domain *Domain) CreateSession(sess *user.Session) error { sess.Expires = time.Now().Add(time.Hour * 24 * 7).Unix() } - return domain.sessions.Create(sess) -} - -func (domain *Domain) DeleteSession(id string) error { - return domain.sessions.Delete(domain.idIndex.ToQuery(id)) -} - -func (domain *Domain) ReadSession(id string) (*user.Session, error) { - sess := &user.Session{} - // @todo there should be a Read in the model to get rid of this pattern - return sess, domain.sessions.Read(domain.idIndex.ToQuery(id), &sess) -} - -func (domain *Domain) Create(user *user.Account, salt string, password string) error { - user.Created = time.Now().Unix() - user.Updated = time.Now().Unix() - err := domain.user.Create(user) + s := &_struct.Struct{} + jso, _ := json.Marshal(sess) + err := s.UnmarshalJSON(jso) if err != nil { return err } - return domain.passwords.Create(pw{ + _, err = domain.db.Create(ctx, &db.CreateRequest{ + Table: "sessions", + Record: s, + }) + return err +} + +func (domain *Domain) DeleteSession(ctx context.Context, id string) error { + _, err := domain.db.Delete(ctx, &db.DeleteRequest{ + Table: "sessions", + Id: id, + }) + return err +} + +func (domain *Domain) ReadSession(ctx context.Context, id string) (*user.Session, error) { + sess := &user.Session{} + if len(id) == 0 { + return nil, fmt.Errorf("no id provided") + } + q := fmt.Sprintf("id == '%v'", id) + logger.Infof("Running query: %v", q) + + rsp, err := domain.db.Read(ctx, &db.ReadRequest{ + Table: "sessions", + Query: q, + }) + if err != nil { + return nil, err + } + if len(rsp.Records) == 0 { + return nil, errors.New("not found") + } + m, _ := rsp.Records[0].MarshalJSON() + json.Unmarshal(m, sess) + return sess, nil +} + +func (domain *Domain) Create(ctx context.Context, user *user.Account, salt string, password string) error { + user.Created = time.Now().Unix() + user.Updated = time.Now().Unix() + + s := &_struct.Struct{} + jso, _ := json.Marshal(user) + err := s.UnmarshalJSON(jso) + if err != nil { + return err + } + _, err = domain.db.Create(ctx, &db.CreateRequest{ + Table: "users", + Record: s, + }) + if err != nil { + return err + } + + pass := pw{ ID: user.Id, Password: password, Salt: salt, + } + s = &_struct.Struct{} + jso, _ = json.Marshal(pass) + err = s.UnmarshalJSON(jso) + if err != nil { + return err + } + _, err = domain.db.Create(ctx, &db.CreateRequest{ + Table: "passwords", + Record: s, }) + + return err } -func (domain *Domain) Delete(id string) error { - return domain.user.Delete(domain.idIndex.ToQuery(id)) +func (domain *Domain) Delete(ctx context.Context, id string) error { + _, err := domain.db.Delete(ctx, &db.DeleteRequest{ + Table: "users", + Id: id, + }) + return err } -func (domain *Domain) Update(user *user.Account) error { +func (domain *Domain) Update(ctx context.Context, user *user.Account) error { user.Updated = time.Now().Unix() - return domain.user.Create(user) + + s := &_struct.Struct{} + jso, _ := json.Marshal(user) + err := s.UnmarshalJSON(jso) + if err != nil { + return err + } + _, err = domain.db.Update(ctx, &db.UpdateRequest{ + Table: "users", + Record: s, + }) + return err } -func (domain *Domain) Read(id string) (*user.Account, error) { +func (domain *Domain) Read(ctx context.Context, id string) (*user.Account, error) { user := &user.Account{} - return user, domain.user.Read(domain.idIndex.ToQuery(id), user) + if len(id) == 0 { + return nil, fmt.Errorf("no id provided") + } + q := fmt.Sprintf("id == '%v'", id) + logger.Infof("Running query: %v", q) + rsp, err := domain.db.Read(ctx, &db.ReadRequest{ + Table: "users", + Query: q, + }) + if err != nil { + return nil, err + } + if len(rsp.Records) == 0 { + return nil, errors.New("not found") + } + m, _ := rsp.Records[0].MarshalJSON() + json.Unmarshal(m, user) + return user, nil } -func (domain *Domain) Search(username, email string, limit, offset int64) ([]*user.Account, error) { - var query model.Query +func (domain *Domain) Search(ctx context.Context, username, email string) ([]*user.Account, error) { + var query string if len(username) > 0 { - query = domain.nameIndex.ToQuery(username) + query = fmt.Sprintf("username == '%v'", username) } else if len(email) > 0 { - query = domain.emailIndex.ToQuery(email) + query = fmt.Sprintf("email == '%v'", email) } else { return nil, errors.New("username and email cannot be blank") } - user := []*user.Account{} - return user, domain.user.Read(query, &user) + usr := &user.Account{} + + rsp, err := domain.db.Read(ctx, &db.ReadRequest{ + Table: "users", + Query: query, + }) + if err != nil { + return nil, err + } + if len(rsp.Records) == 0 { + return nil, errors.New("not found") + } + m, _ := rsp.Records[0].MarshalJSON() + json.Unmarshal(m, usr) + return []*user.Account{usr}, nil } -func (domain *Domain) UpdatePassword(id string, salt string, password string) error { - return domain.passwords.Create(pw{ +func (domain *Domain) UpdatePassword(ctx context.Context, id string, salt string, password string) error { + pass := pw{ ID: id, Password: password, Salt: salt, + } + s := &_struct.Struct{} + jso, _ := json.Marshal(pass) + err := s.UnmarshalJSON(jso) + if err != nil { + return err + } + _, err = domain.db.Update(ctx, &db.UpdateRequest{ + Table: "passwords", + Record: s, }) + return err } -func (domain *Domain) SaltAndPassword(username, email string) (string, string, error) { - var query model.Query +func (domain *Domain) SaltAndPassword(ctx context.Context, username, email string) (string, string, error) { + var query string if len(username) > 0 { - query = domain.nameIndex.ToQuery(username) + query = fmt.Sprintf("username == '%v'", username) } else if len(email) > 0 { - query = domain.emailIndex.ToQuery(email) + query = fmt.Sprintf("email == '%v'", email) } else { return "", "", errors.New("username and email cannot be blank") } - user := &user.Account{} - err := domain.user.Read(query, &user) - if err != nil { - return "", "", err - } - - query = model.QueryEquals("id", user.Id) - query.Order.Type = model.OrderTypeUnordered - password := &pw{} - err = domain.passwords.Read(query, password) + + rsp, err := domain.db.Read(ctx, &db.ReadRequest{ + Table: "passwords", + Query: query, + }) if err != nil { return "", "", err } + if len(rsp.Records) == 0 { + return "", "", errors.New("not found") + } + m, _ := rsp.Records[0].MarshalJSON() + json.Unmarshal(m, password) return password.Salt, password.Password, nil } diff --git a/user/examples.json b/user/examples.json new file mode 100644 index 0000000..494d9f3 --- /dev/null +++ b/user/examples.json @@ -0,0 +1,66 @@ +{ + "create": [{ + "title": "Create an account", + "request": { + "id": "usrid-1", + "username": "usrname-1", + "email": "joe@example.com", + "password": "mySecretPass123" + }, + "response": { + "id": "1" + } + }], + "read": [{ + "title": "Read an account by id", + "request": { + "id": "usrid-1" + }, + "response": { + "accounts": [ + { + "id": "fdf34f34f34-f34f34-f43f43f34-f4f34f", + "username": "usrname-1", + "email": "joe@example.com", + "created": "1623677579", + "updated": "1623677579" + } + ] + + } + },{ + "title": "Read account by username or email", + "request": { + "username": "usrname-1" + }, + "response": { + "accounts": [ + { + "id": "fdf34f34f34-f34f34-f43f43f34-f4f34f", + "username": "usrname-1", + "email": "joe@example.com", + "created": "1623677579", + "updated": "1623677579" + } + ] + + } + },{ + "title": "Read account by email", + "request": { + "email": "joe@example.com" + }, + "response": { + "accounts": [ + { + "id": "fdf34f34f34-f34f34-f43f43f34-f4f34f", + "username": "usrname-1", + "email": "joe@example.com", + "created": "1623677579", + "updated": "1623677579" + } + ] + + } + }] +} diff --git a/user/handler/handler.go b/user/handler/handler.go index c37b21b..6701147 100644 --- a/user/handler/handler.go +++ b/user/handler/handler.go @@ -7,6 +7,7 @@ import ( "time" "github.com/micro/micro/v3/service/errors" + db "github.com/micro/services/db/proto" "github.com/micro/services/user/domain" pb "github.com/micro/services/user/proto" "golang.org/x/crypto/bcrypt" @@ -37,9 +38,9 @@ type User struct { domain *domain.Domain } -func NewUser() *User { +func NewUser(db db.DbService) *User { return &User{ - domain: domain.New(), + domain: domain.New(db), } } @@ -54,7 +55,7 @@ func (s *User) Create(ctx context.Context, req *pb.CreateRequest, rsp *pb.Create } pp := base64.StdEncoding.EncodeToString(h) - return s.domain.Create(&pb.Account{ + return s.domain.Create(ctx, &pb.Account{ Id: req.Id, Username: strings.ToLower(req.Username), Email: strings.ToLower(req.Email), @@ -62,16 +63,27 @@ func (s *User) Create(ctx context.Context, req *pb.CreateRequest, rsp *pb.Create } func (s *User) Read(ctx context.Context, req *pb.ReadRequest, rsp *pb.ReadResponse) error { - account, err := s.domain.Read(req.Id) - if err != nil { - return err + switch { + case req.Id != "": + account, err := s.domain.Read(ctx, req.Id) + if err != nil { + return err + } + rsp.Account = account + return nil + case req.Username != "" || req.Email != "": + accounts, err := s.domain.Search(ctx, req.Username, req.Email) + if err != nil { + return err + } + rsp.Account = accounts[0] + return nil } - rsp.Account = account return nil } func (s *User) Update(ctx context.Context, req *pb.UpdateRequest, rsp *pb.UpdateResponse) error { - return s.domain.Update(&pb.Account{ + return s.domain.Update(ctx, &pb.Account{ Id: req.Id, Username: strings.ToLower(req.Username), Email: strings.ToLower(req.Email), @@ -79,20 +91,11 @@ func (s *User) Update(ctx context.Context, req *pb.UpdateRequest, rsp *pb.Update } func (s *User) Delete(ctx context.Context, req *pb.DeleteRequest, rsp *pb.DeleteResponse) error { - return s.domain.Delete(req.Id) -} - -func (s *User) Search(ctx context.Context, req *pb.SearchRequest, rsp *pb.SearchResponse) error { - accounts, err := s.domain.Search(req.Username, req.Email, req.Limit, req.Offset) - if err != nil { - return err - } - rsp.Accounts = accounts - return nil + return s.domain.Delete(ctx, req.Id) } func (s *User) UpdatePassword(ctx context.Context, req *pb.UpdatePasswordRequest, rsp *pb.UpdatePasswordResponse) error { - usr, err := s.domain.Read(req.UserId) + usr, err := s.domain.Read(ctx, req.UserId) if err != nil { return errors.InternalServerError("user.updatepassword", err.Error()) } @@ -100,7 +103,7 @@ func (s *User) UpdatePassword(ctx context.Context, req *pb.UpdatePasswordRequest return errors.InternalServerError("user.updatepassword", "Passwords don't math") } - salt, hashed, err := s.domain.SaltAndPassword(usr.Username, usr.Email) + salt, hashed, err := s.domain.SaltAndPassword(ctx, usr.Username, usr.Email) if err != nil { return errors.InternalServerError("user.updatepassword", err.Error()) } @@ -121,7 +124,7 @@ func (s *User) UpdatePassword(ctx context.Context, req *pb.UpdatePasswordRequest } pp := base64.StdEncoding.EncodeToString(h) - if err := s.domain.UpdatePassword(req.UserId, salt, pp); err != nil { + if err := s.domain.UpdatePassword(ctx, req.UserId, salt, pp); err != nil { return errors.InternalServerError("user.updatepassword", err.Error()) } return nil @@ -131,7 +134,7 @@ func (s *User) Login(ctx context.Context, req *pb.LoginRequest, rsp *pb.LoginRes username := strings.ToLower(req.Username) email := strings.ToLower(req.Email) - salt, hashed, err := s.domain.SaltAndPassword(username, email) + salt, hashed, err := s.domain.SaltAndPassword(ctx, username, email) if err != nil { return err } @@ -153,7 +156,7 @@ func (s *User) Login(ctx context.Context, req *pb.LoginRequest, rsp *pb.LoginRes Expires: time.Now().Add(time.Hour * 24 * 7).Unix(), } - if err := s.domain.CreateSession(sess); err != nil { + if err := s.domain.CreateSession(ctx, sess); err != nil { return errors.InternalServerError("user.Login", err.Error()) } rsp.Session = sess @@ -161,11 +164,11 @@ func (s *User) Login(ctx context.Context, req *pb.LoginRequest, rsp *pb.LoginRes } func (s *User) Logout(ctx context.Context, req *pb.LogoutRequest, rsp *pb.LogoutResponse) error { - return s.domain.DeleteSession(req.SessionId) + return s.domain.DeleteSession(ctx, req.SessionId) } func (s *User) ReadSession(ctx context.Context, req *pb.ReadSessionRequest, rsp *pb.ReadSessionResponse) error { - sess, err := s.domain.ReadSession(req.SessionId) + sess, err := s.domain.ReadSession(ctx, req.SessionId) if err != nil { return err } diff --git a/user/main.go b/user/main.go index 389b79e..28f104d 100644 --- a/user/main.go +++ b/user/main.go @@ -3,6 +3,7 @@ package main import ( "github.com/micro/micro/v3/service" "github.com/micro/micro/v3/service/logger" + db "github.com/micro/services/db/proto" "github.com/micro/services/pkg/tracing" "github.com/micro/services/user/handler" proto "github.com/micro/services/user/proto" @@ -15,7 +16,7 @@ func main() { service.Init() - proto.RegisterUserHandler(service.Server(), handler.NewUser()) + proto.RegisterUserHandler(service.Server(), handler.NewUser(db.NewDbService("db1", service.Client()))) traceCloser := tracing.SetupOpentracing("user") defer traceCloser.Close() diff --git a/user/proto/user.pb.go b/user/proto/user.pb.go index 33bc6bf..9cc57b8 100644 --- a/user/proto/user.pb.go +++ b/user/proto/user.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.15.6 +// protoc v3.6.1 // source: proto/user.proto package user @@ -396,7 +396,9 @@ type ReadRequest struct { unknownFields protoimpl.UnknownFields // the account id - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` + Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` } func (x *ReadRequest) Reset() { @@ -438,6 +440,20 @@ func (x *ReadRequest) GetId() string { return "" } +func (x *ReadRequest) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +func (x *ReadRequest) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + type ReadResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -704,125 +720,6 @@ func (*UpdatePasswordResponse) Descriptor() ([]byte, []int) { return file_proto_user_proto_rawDescGZIP(), []int{11} } -// Search for an account -type SearchRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` - Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` - Limit int64 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"` - Offset int64 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"` -} - -func (x *SearchRequest) Reset() { - *x = SearchRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_user_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SearchRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SearchRequest) ProtoMessage() {} - -func (x *SearchRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_user_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SearchRequest.ProtoReflect.Descriptor instead. -func (*SearchRequest) Descriptor() ([]byte, []int) { - return file_proto_user_proto_rawDescGZIP(), []int{12} -} - -func (x *SearchRequest) GetUsername() string { - if x != nil { - return x.Username - } - return "" -} - -func (x *SearchRequest) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *SearchRequest) GetLimit() int64 { - if x != nil { - return x.Limit - } - return 0 -} - -func (x *SearchRequest) GetOffset() int64 { - if x != nil { - return x.Offset - } - return 0 -} - -type SearchResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Accounts []*Account `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts,omitempty"` -} - -func (x *SearchResponse) Reset() { - *x = SearchResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_proto_user_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SearchResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SearchResponse) ProtoMessage() {} - -func (x *SearchResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_user_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SearchResponse.ProtoReflect.Descriptor instead. -func (*SearchResponse) Descriptor() ([]byte, []int) { - return file_proto_user_proto_rawDescGZIP(), []int{13} -} - -func (x *SearchResponse) GetAccounts() []*Account { - if x != nil { - return x.Accounts - } - return nil -} - // Read a session by id type ReadSessionRequest struct { state protoimpl.MessageState @@ -835,7 +732,7 @@ type ReadSessionRequest struct { func (x *ReadSessionRequest) Reset() { *x = ReadSessionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_proto_user_proto_msgTypes[14] + mi := &file_proto_user_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -848,7 +745,7 @@ func (x *ReadSessionRequest) String() string { func (*ReadSessionRequest) ProtoMessage() {} func (x *ReadSessionRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_user_proto_msgTypes[14] + mi := &file_proto_user_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -861,7 +758,7 @@ func (x *ReadSessionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadSessionRequest.ProtoReflect.Descriptor instead. func (*ReadSessionRequest) Descriptor() ([]byte, []int) { - return file_proto_user_proto_rawDescGZIP(), []int{14} + return file_proto_user_proto_rawDescGZIP(), []int{12} } func (x *ReadSessionRequest) GetSessionId() string { @@ -882,7 +779,7 @@ type ReadSessionResponse struct { func (x *ReadSessionResponse) Reset() { *x = ReadSessionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_proto_user_proto_msgTypes[15] + mi := &file_proto_user_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -895,7 +792,7 @@ func (x *ReadSessionResponse) String() string { func (*ReadSessionResponse) ProtoMessage() {} func (x *ReadSessionResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_user_proto_msgTypes[15] + mi := &file_proto_user_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -908,7 +805,7 @@ func (x *ReadSessionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ReadSessionResponse.ProtoReflect.Descriptor instead. func (*ReadSessionResponse) Descriptor() ([]byte, []int) { - return file_proto_user_proto_rawDescGZIP(), []int{15} + return file_proto_user_proto_rawDescGZIP(), []int{13} } func (x *ReadSessionResponse) GetSession() *Session { @@ -932,7 +829,7 @@ type LoginRequest struct { func (x *LoginRequest) Reset() { *x = LoginRequest{} if protoimpl.UnsafeEnabled { - mi := &file_proto_user_proto_msgTypes[16] + mi := &file_proto_user_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -945,7 +842,7 @@ func (x *LoginRequest) String() string { func (*LoginRequest) ProtoMessage() {} func (x *LoginRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_user_proto_msgTypes[16] + mi := &file_proto_user_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -958,7 +855,7 @@ func (x *LoginRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LoginRequest.ProtoReflect.Descriptor instead. func (*LoginRequest) Descriptor() ([]byte, []int) { - return file_proto_user_proto_rawDescGZIP(), []int{16} + return file_proto_user_proto_rawDescGZIP(), []int{14} } func (x *LoginRequest) GetUsername() string { @@ -993,7 +890,7 @@ type LoginResponse struct { func (x *LoginResponse) Reset() { *x = LoginResponse{} if protoimpl.UnsafeEnabled { - mi := &file_proto_user_proto_msgTypes[17] + mi := &file_proto_user_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1006,7 +903,7 @@ func (x *LoginResponse) String() string { func (*LoginResponse) ProtoMessage() {} func (x *LoginResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_user_proto_msgTypes[17] + mi := &file_proto_user_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1019,7 +916,7 @@ func (x *LoginResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use LoginResponse.ProtoReflect.Descriptor instead. func (*LoginResponse) Descriptor() ([]byte, []int) { - return file_proto_user_proto_rawDescGZIP(), []int{17} + return file_proto_user_proto_rawDescGZIP(), []int{15} } func (x *LoginResponse) GetSession() *Session { @@ -1041,7 +938,7 @@ type LogoutRequest struct { func (x *LogoutRequest) Reset() { *x = LogoutRequest{} if protoimpl.UnsafeEnabled { - mi := &file_proto_user_proto_msgTypes[18] + mi := &file_proto_user_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1054,7 +951,7 @@ func (x *LogoutRequest) String() string { func (*LogoutRequest) ProtoMessage() {} func (x *LogoutRequest) ProtoReflect() protoreflect.Message { - mi := &file_proto_user_proto_msgTypes[18] + mi := &file_proto_user_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1067,7 +964,7 @@ func (x *LogoutRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LogoutRequest.ProtoReflect.Descriptor instead. func (*LogoutRequest) Descriptor() ([]byte, []int) { - return file_proto_user_proto_rawDescGZIP(), []int{18} + return file_proto_user_proto_rawDescGZIP(), []int{16} } func (x *LogoutRequest) GetSessionId() string { @@ -1086,7 +983,7 @@ type LogoutResponse struct { func (x *LogoutResponse) Reset() { *x = LogoutResponse{} if protoimpl.UnsafeEnabled { - mi := &file_proto_user_proto_msgTypes[19] + mi := &file_proto_user_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1099,7 +996,7 @@ func (x *LogoutResponse) String() string { func (*LogoutResponse) ProtoMessage() {} func (x *LogoutResponse) ProtoReflect() protoreflect.Message { - mi := &file_proto_user_proto_msgTypes[19] + mi := &file_proto_user_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1112,7 +1009,7 @@ func (x *LogoutResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use LogoutResponse.ProtoReflect.Descriptor instead. func (*LogoutResponse) Descriptor() ([]byte, []int) { - return file_proto_user_proto_rawDescGZIP(), []int{19} + return file_proto_user_proto_rawDescGZIP(), []int{17} } var File_proto_user_proto protoreflect.FileDescriptor @@ -1146,97 +1043,86 @@ var file_proto_user_proto_rawDesc = []byte{ 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x10, 0x0a, 0x0e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, 0x0a, 0x0b, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x37, 0x0a, - 0x0c, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, - 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x51, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x10, 0x0a, 0x0e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x15, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, - 0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x5f, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x18, 0x0a, 0x16, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x3b, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x08, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x22, 0x32, 0x0a, 0x12, 0x52, 0x65, 0x61, 0x64, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x3e, 0x0a, 0x13, 0x52, 0x65, 0x61, 0x64, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x27, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5c, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x38, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x22, 0x2d, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, - 0x10, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x32, 0x93, 0x04, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x06, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x2f, 0x0a, 0x04, 0x52, 0x65, 0x61, 0x64, 0x12, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x35, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x13, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x06, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x35, 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1b, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, - 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x06, 0x4c, 0x6f, - 0x67, 0x6f, 0x75, 0x74, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4c, 0x6f, 0x67, 0x6f, - 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x44, 0x0a, 0x0b, 0x52, 0x65, 0x61, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0e, 0x5a, 0x0c, 0x2e, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, + 0x37, 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x27, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x51, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, + 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x10, 0x0a, 0x0e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9e, 0x01, + 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x50, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x5f, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x18, + 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x0a, 0x12, 0x52, 0x65, 0x61, 0x64, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x3e, 0x0a, 0x13, + 0x52, 0x65, 0x61, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5c, 0x0a, 0x0c, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, + 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x38, 0x0a, 0x0d, 0x4c, 0x6f, + 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x07, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x2d, 0x0a, 0x0d, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xdc, 0x03, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x35, + 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x04, 0x52, 0x65, 0x61, 0x64, 0x12, 0x11, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x35, 0x0a, + 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1b, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x32, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x12, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x06, 0x4c, 0x6f, 0x67, 0x6f, 0x75, + 0x74, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4c, 0x6f, + 0x67, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x44, + 0x0a, 0x0b, 0x52, 0x65, 0x61, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, + 0x65, 0x61, 0x64, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x42, 0x0e, 0x5a, 0x0c, 0x2e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, + 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1251,7 +1137,7 @@ func file_proto_user_proto_rawDescGZIP() []byte { return file_proto_user_proto_rawDescData } -var file_proto_user_proto_msgTypes = make([]protoimpl.MessageInfo, 20) +var file_proto_user_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_proto_user_proto_goTypes = []interface{}{ (*Account)(nil), // 0: user.Account (*Session)(nil), // 1: user.Session @@ -1265,43 +1151,38 @@ var file_proto_user_proto_goTypes = []interface{}{ (*UpdateResponse)(nil), // 9: user.UpdateResponse (*UpdatePasswordRequest)(nil), // 10: user.UpdatePasswordRequest (*UpdatePasswordResponse)(nil), // 11: user.UpdatePasswordResponse - (*SearchRequest)(nil), // 12: user.SearchRequest - (*SearchResponse)(nil), // 13: user.SearchResponse - (*ReadSessionRequest)(nil), // 14: user.ReadSessionRequest - (*ReadSessionResponse)(nil), // 15: user.ReadSessionResponse - (*LoginRequest)(nil), // 16: user.LoginRequest - (*LoginResponse)(nil), // 17: user.LoginResponse - (*LogoutRequest)(nil), // 18: user.LogoutRequest - (*LogoutResponse)(nil), // 19: user.LogoutResponse + (*ReadSessionRequest)(nil), // 12: user.ReadSessionRequest + (*ReadSessionResponse)(nil), // 13: user.ReadSessionResponse + (*LoginRequest)(nil), // 14: user.LoginRequest + (*LoginResponse)(nil), // 15: user.LoginResponse + (*LogoutRequest)(nil), // 16: user.LogoutRequest + (*LogoutResponse)(nil), // 17: user.LogoutResponse } var file_proto_user_proto_depIdxs = []int32{ 0, // 0: user.ReadResponse.account:type_name -> user.Account - 0, // 1: user.SearchResponse.accounts:type_name -> user.Account - 1, // 2: user.ReadSessionResponse.session:type_name -> user.Session - 1, // 3: user.LoginResponse.session:type_name -> user.Session - 2, // 4: user.User.Create:input_type -> user.CreateRequest - 6, // 5: user.User.Read:input_type -> user.ReadRequest - 8, // 6: user.User.Update:input_type -> user.UpdateRequest - 4, // 7: user.User.Delete:input_type -> user.DeleteRequest - 12, // 8: user.User.Search:input_type -> user.SearchRequest - 10, // 9: user.User.UpdatePassword:input_type -> user.UpdatePasswordRequest - 16, // 10: user.User.Login:input_type -> user.LoginRequest - 18, // 11: user.User.Logout:input_type -> user.LogoutRequest - 14, // 12: user.User.ReadSession:input_type -> user.ReadSessionRequest - 3, // 13: user.User.Create:output_type -> user.CreateResponse - 7, // 14: user.User.Read:output_type -> user.ReadResponse - 9, // 15: user.User.Update:output_type -> user.UpdateResponse - 5, // 16: user.User.Delete:output_type -> user.DeleteResponse - 13, // 17: user.User.Search:output_type -> user.SearchResponse - 11, // 18: user.User.UpdatePassword:output_type -> user.UpdatePasswordResponse - 17, // 19: user.User.Login:output_type -> user.LoginResponse - 19, // 20: user.User.Logout:output_type -> user.LogoutResponse - 15, // 21: user.User.ReadSession:output_type -> user.ReadSessionResponse - 13, // [13:22] is the sub-list for method output_type - 4, // [4:13] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 1, // 1: user.ReadSessionResponse.session:type_name -> user.Session + 1, // 2: user.LoginResponse.session:type_name -> user.Session + 2, // 3: user.User.Create:input_type -> user.CreateRequest + 6, // 4: user.User.Read:input_type -> user.ReadRequest + 8, // 5: user.User.Update:input_type -> user.UpdateRequest + 4, // 6: user.User.Delete:input_type -> user.DeleteRequest + 10, // 7: user.User.UpdatePassword:input_type -> user.UpdatePasswordRequest + 14, // 8: user.User.Login:input_type -> user.LoginRequest + 16, // 9: user.User.Logout:input_type -> user.LogoutRequest + 12, // 10: user.User.ReadSession:input_type -> user.ReadSessionRequest + 3, // 11: user.User.Create:output_type -> user.CreateResponse + 7, // 12: user.User.Read:output_type -> user.ReadResponse + 9, // 13: user.User.Update:output_type -> user.UpdateResponse + 5, // 14: user.User.Delete:output_type -> user.DeleteResponse + 11, // 15: user.User.UpdatePassword:output_type -> user.UpdatePasswordResponse + 15, // 16: user.User.Login:output_type -> user.LoginResponse + 17, // 17: user.User.Logout:output_type -> user.LogoutResponse + 13, // 18: user.User.ReadSession:output_type -> user.ReadSessionResponse + 11, // [11:19] is the sub-list for method output_type + 3, // [3:11] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_proto_user_proto_init() } @@ -1455,30 +1336,6 @@ func file_proto_user_proto_init() { } } file_proto_user_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_proto_user_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_proto_user_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadSessionRequest); i { case 0: return &v.state @@ -1490,7 +1347,7 @@ func file_proto_user_proto_init() { return nil } } - file_proto_user_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_proto_user_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadSessionResponse); i { case 0: return &v.state @@ -1502,7 +1359,7 @@ func file_proto_user_proto_init() { return nil } } - file_proto_user_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_proto_user_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoginRequest); i { case 0: return &v.state @@ -1514,7 +1371,7 @@ func file_proto_user_proto_init() { return nil } } - file_proto_user_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_proto_user_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoginResponse); i { case 0: return &v.state @@ -1526,7 +1383,7 @@ func file_proto_user_proto_init() { return nil } } - file_proto_user_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_proto_user_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LogoutRequest); i { case 0: return &v.state @@ -1538,7 +1395,7 @@ func file_proto_user_proto_init() { return nil } } - file_proto_user_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_proto_user_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LogoutResponse); i { case 0: return &v.state @@ -1557,7 +1414,7 @@ func file_proto_user_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_proto_user_proto_rawDesc, NumEnums: 0, - NumMessages: 20, + NumMessages: 18, NumExtensions: 0, NumServices: 1, }, diff --git a/user/proto/user.pb.micro.go b/user/proto/user.pb.micro.go index 8abd459..4716d7e 100644 --- a/user/proto/user.pb.micro.go +++ b/user/proto/user.pb.micro.go @@ -46,7 +46,6 @@ type UserService interface { Read(ctx context.Context, in *ReadRequest, opts ...client.CallOption) (*ReadResponse, error) Update(ctx context.Context, in *UpdateRequest, opts ...client.CallOption) (*UpdateResponse, error) Delete(ctx context.Context, in *DeleteRequest, opts ...client.CallOption) (*DeleteResponse, error) - Search(ctx context.Context, in *SearchRequest, opts ...client.CallOption) (*SearchResponse, error) UpdatePassword(ctx context.Context, in *UpdatePasswordRequest, opts ...client.CallOption) (*UpdatePasswordResponse, error) Login(ctx context.Context, in *LoginRequest, opts ...client.CallOption) (*LoginResponse, error) Logout(ctx context.Context, in *LogoutRequest, opts ...client.CallOption) (*LogoutResponse, error) @@ -105,16 +104,6 @@ func (c *userService) Delete(ctx context.Context, in *DeleteRequest, opts ...cli return out, nil } -func (c *userService) Search(ctx context.Context, in *SearchRequest, opts ...client.CallOption) (*SearchResponse, error) { - req := c.c.NewRequest(c.name, "User.Search", in) - out := new(SearchResponse) - err := c.c.Call(ctx, req, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *userService) UpdatePassword(ctx context.Context, in *UpdatePasswordRequest, opts ...client.CallOption) (*UpdatePasswordResponse, error) { req := c.c.NewRequest(c.name, "User.UpdatePassword", in) out := new(UpdatePasswordResponse) @@ -162,7 +151,6 @@ type UserHandler interface { Read(context.Context, *ReadRequest, *ReadResponse) error Update(context.Context, *UpdateRequest, *UpdateResponse) error Delete(context.Context, *DeleteRequest, *DeleteResponse) error - Search(context.Context, *SearchRequest, *SearchResponse) error UpdatePassword(context.Context, *UpdatePasswordRequest, *UpdatePasswordResponse) error Login(context.Context, *LoginRequest, *LoginResponse) error Logout(context.Context, *LogoutRequest, *LogoutResponse) error @@ -175,7 +163,6 @@ func RegisterUserHandler(s server.Server, hdlr UserHandler, opts ...server.Handl Read(ctx context.Context, in *ReadRequest, out *ReadResponse) error Update(ctx context.Context, in *UpdateRequest, out *UpdateResponse) error Delete(ctx context.Context, in *DeleteRequest, out *DeleteResponse) error - Search(ctx context.Context, in *SearchRequest, out *SearchResponse) error UpdatePassword(ctx context.Context, in *UpdatePasswordRequest, out *UpdatePasswordResponse) error Login(ctx context.Context, in *LoginRequest, out *LoginResponse) error Logout(ctx context.Context, in *LogoutRequest, out *LogoutResponse) error @@ -208,10 +195,6 @@ func (h *userHandler) Delete(ctx context.Context, in *DeleteRequest, out *Delete return h.UserHandler.Delete(ctx, in, out) } -func (h *userHandler) Search(ctx context.Context, in *SearchRequest, out *SearchResponse) error { - return h.UserHandler.Search(ctx, in, out) -} - func (h *userHandler) UpdatePassword(ctx context.Context, in *UpdatePasswordRequest, out *UpdatePasswordResponse) error { return h.UserHandler.UpdatePassword(ctx, in, out) } diff --git a/user/proto/user.proto b/user/proto/user.proto index bab2d49..aa73992 100644 --- a/user/proto/user.proto +++ b/user/proto/user.proto @@ -9,7 +9,6 @@ service User { rpc Read(ReadRequest) returns (ReadResponse) {} rpc Update(UpdateRequest) returns (UpdateResponse) {} rpc Delete(DeleteRequest) returns (DeleteResponse) {} - rpc Search(SearchRequest) returns (SearchResponse) {} rpc UpdatePassword(UpdatePasswordRequest) returns (UpdatePasswordResponse) {} rpc Login(LoginRequest) returns (LoginResponse) {} rpc Logout(LogoutRequest) returns (LogoutResponse) {} @@ -70,6 +69,8 @@ message DeleteResponse { message ReadRequest { // the account id string id = 1; + string username = 2; + string email = 3; } message ReadResponse { @@ -104,18 +105,6 @@ message UpdatePasswordRequest { message UpdatePasswordResponse { } -// Search for an account -message SearchRequest { - string username = 1; - string email = 2; - int64 limit = 3; - int64 offset = 4; -} - -message SearchResponse { - repeated Account accounts = 1; -} - // Read a session by id message ReadSessionRequest { string sessionId = 1;