first commit
This commit is contained in:
1543
servers/grpcapi/proto/silvermobi-service.pb.go
Normal file
1543
servers/grpcapi/proto/silvermobi-service.pb.go
Normal file
File diff suppressed because it is too large
Load Diff
115
servers/grpcapi/proto/silvermobi-service.proto
Normal file
115
servers/grpcapi/proto/silvermobi-service.proto
Normal file
@@ -0,0 +1,115 @@
|
||||
syntax = "proto3";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
option go_package = "git.coopgo.io/coopgo-apps/silvermobi/grpcapi/proto";
|
||||
|
||||
service SilvermobiGRPC {
|
||||
// User authentication functions
|
||||
rpc AuthLogin(AuthLoginRequest) returns (AuthLoginResponse) {}
|
||||
rpc AuthRegister(AuthRegisterRequest) returns (AuthRegisterResponse) {}
|
||||
// User forget password
|
||||
rpc ForgetAccount(ForgetAccountRequest) returns (ForgetAccountResponse) {}
|
||||
rpc UpdatePassword(UpdatePasswordRequest) returns (UpdatePasswordResponse) {}
|
||||
// phone_number
|
||||
rpc SetPhoneNumber(SetPhoneNumberRequest) returns (SetPhoneNumberResponse) {}
|
||||
rpc VerifyPhoneNumber(VerifyPhoneNumberRequest) returns (VerifyPhoneNumberResponse) {}
|
||||
rpc SetBirthDate(BirthDateRequest) returns (BirthDateResponse) {}
|
||||
// redis
|
||||
rpc SetKeyValue(KeyValueRequest) returns (KeyValueResponse) {}
|
||||
rpc GetKeyValue(KeyRequest) returns (ValueResponse) {}
|
||||
rpc GetValidation(ValidationRequest) returns (ValidationResponse) {}
|
||||
|
||||
|
||||
}
|
||||
|
||||
message AuthLoginRequest {
|
||||
string username = 1;
|
||||
string password = 2;
|
||||
}
|
||||
|
||||
message AuthLoginResponse {
|
||||
string token = 1;
|
||||
}
|
||||
|
||||
message AuthRegisterRequest {
|
||||
string email = 1;
|
||||
string password = 2;
|
||||
string first_name = 3;
|
||||
string last_name = 4;
|
||||
string phone_number = 5;
|
||||
}
|
||||
|
||||
message AuthRegisterResponse {
|
||||
string token = 1;
|
||||
}
|
||||
|
||||
message ForgetAccountRequest{
|
||||
string username = 1 ;
|
||||
string namespace = 2 ;
|
||||
}
|
||||
|
||||
message ForgetAccountResponse{
|
||||
bool response = 1 ;
|
||||
string access_code = 2 ;
|
||||
}
|
||||
|
||||
message UpdatePasswordRequest{
|
||||
string email = 1 ;
|
||||
string password = 2;
|
||||
}
|
||||
|
||||
message UpdatePasswordResponse{
|
||||
bool response =1 ;
|
||||
}
|
||||
|
||||
message SetPhoneNumberRequest {
|
||||
string phone_number = 1;
|
||||
string email = 2;
|
||||
}
|
||||
|
||||
message SetPhoneNumberResponse {
|
||||
bool ok = 1;
|
||||
}
|
||||
|
||||
message VerifyPhoneNumberRequest {
|
||||
string phone_number = 1;
|
||||
string verification_code = 2;
|
||||
string email = 3;
|
||||
}
|
||||
|
||||
message VerifyPhoneNumberResponse {
|
||||
bool ok = 1;
|
||||
}
|
||||
|
||||
message BirthDateRequest {
|
||||
google.protobuf.Timestamp birthdate = 1 ;
|
||||
string email = 2;
|
||||
}
|
||||
|
||||
message BirthDateResponse {
|
||||
bool ok = 1;
|
||||
}
|
||||
|
||||
message KeyValueRequest {
|
||||
string key = 1;
|
||||
string value=2;
|
||||
}
|
||||
message KeyValueResponse {
|
||||
bool ok = 1;
|
||||
}
|
||||
|
||||
message KeyRequest {
|
||||
string key = 1;
|
||||
}
|
||||
|
||||
message ValueResponse{
|
||||
string value =1 ;
|
||||
}
|
||||
|
||||
message ValidationRequest {
|
||||
string email =1 ;
|
||||
}
|
||||
|
||||
message ValidationResponse {
|
||||
bool phone = 1 ;
|
||||
bool birthdate = 2;
|
||||
}
|
||||
450
servers/grpcapi/proto/silvermobi-service_grpc.pb.go
Normal file
450
servers/grpcapi/proto/silvermobi-service_grpc.pb.go
Normal file
@@ -0,0 +1,450 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.3.0
|
||||
// - protoc v3.12.4
|
||||
// source: silvermobi-service.proto
|
||||
|
||||
package proto
|
||||
|
||||
import (
|
||||
context "context"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
// Requires gRPC-Go v1.32.0 or later.
|
||||
const _ = grpc.SupportPackageIsVersion7
|
||||
|
||||
const (
|
||||
SilvermobiGRPC_AuthLogin_FullMethodName = "/SilvermobiGRPC/AuthLogin"
|
||||
SilvermobiGRPC_AuthRegister_FullMethodName = "/SilvermobiGRPC/AuthRegister"
|
||||
SilvermobiGRPC_ForgetAccount_FullMethodName = "/SilvermobiGRPC/ForgetAccount"
|
||||
SilvermobiGRPC_UpdatePassword_FullMethodName = "/SilvermobiGRPC/UpdatePassword"
|
||||
SilvermobiGRPC_SetPhoneNumber_FullMethodName = "/SilvermobiGRPC/SetPhoneNumber"
|
||||
SilvermobiGRPC_VerifyPhoneNumber_FullMethodName = "/SilvermobiGRPC/VerifyPhoneNumber"
|
||||
SilvermobiGRPC_SetBirthDate_FullMethodName = "/SilvermobiGRPC/SetBirthDate"
|
||||
SilvermobiGRPC_SetKeyValue_FullMethodName = "/SilvermobiGRPC/SetKeyValue"
|
||||
SilvermobiGRPC_GetKeyValue_FullMethodName = "/SilvermobiGRPC/GetKeyValue"
|
||||
SilvermobiGRPC_GetValidation_FullMethodName = "/SilvermobiGRPC/GetValidation"
|
||||
)
|
||||
|
||||
// SilvermobiGRPCClient is the client API for SilvermobiGRPC service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||
type SilvermobiGRPCClient interface {
|
||||
// User authentication functions
|
||||
AuthLogin(ctx context.Context, in *AuthLoginRequest, opts ...grpc.CallOption) (*AuthLoginResponse, error)
|
||||
AuthRegister(ctx context.Context, in *AuthRegisterRequest, opts ...grpc.CallOption) (*AuthRegisterResponse, error)
|
||||
// User forget password
|
||||
ForgetAccount(ctx context.Context, in *ForgetAccountRequest, opts ...grpc.CallOption) (*ForgetAccountResponse, error)
|
||||
UpdatePassword(ctx context.Context, in *UpdatePasswordRequest, opts ...grpc.CallOption) (*UpdatePasswordResponse, error)
|
||||
// phone_number
|
||||
SetPhoneNumber(ctx context.Context, in *SetPhoneNumberRequest, opts ...grpc.CallOption) (*SetPhoneNumberResponse, error)
|
||||
VerifyPhoneNumber(ctx context.Context, in *VerifyPhoneNumberRequest, opts ...grpc.CallOption) (*VerifyPhoneNumberResponse, error)
|
||||
SetBirthDate(ctx context.Context, in *BirthDateRequest, opts ...grpc.CallOption) (*BirthDateResponse, error)
|
||||
// redis
|
||||
SetKeyValue(ctx context.Context, in *KeyValueRequest, opts ...grpc.CallOption) (*KeyValueResponse, error)
|
||||
GetKeyValue(ctx context.Context, in *KeyRequest, opts ...grpc.CallOption) (*ValueResponse, error)
|
||||
GetValidation(ctx context.Context, in *ValidationRequest, opts ...grpc.CallOption) (*ValidationResponse, error)
|
||||
}
|
||||
|
||||
type silvermobiGRPCClient struct {
|
||||
cc grpc.ClientConnInterface
|
||||
}
|
||||
|
||||
func NewSilvermobiGRPCClient(cc grpc.ClientConnInterface) SilvermobiGRPCClient {
|
||||
return &silvermobiGRPCClient{cc}
|
||||
}
|
||||
|
||||
func (c *silvermobiGRPCClient) AuthLogin(ctx context.Context, in *AuthLoginRequest, opts ...grpc.CallOption) (*AuthLoginResponse, error) {
|
||||
out := new(AuthLoginResponse)
|
||||
err := c.cc.Invoke(ctx, SilvermobiGRPC_AuthLogin_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *silvermobiGRPCClient) AuthRegister(ctx context.Context, in *AuthRegisterRequest, opts ...grpc.CallOption) (*AuthRegisterResponse, error) {
|
||||
out := new(AuthRegisterResponse)
|
||||
err := c.cc.Invoke(ctx, SilvermobiGRPC_AuthRegister_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *silvermobiGRPCClient) ForgetAccount(ctx context.Context, in *ForgetAccountRequest, opts ...grpc.CallOption) (*ForgetAccountResponse, error) {
|
||||
out := new(ForgetAccountResponse)
|
||||
err := c.cc.Invoke(ctx, SilvermobiGRPC_ForgetAccount_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *silvermobiGRPCClient) UpdatePassword(ctx context.Context, in *UpdatePasswordRequest, opts ...grpc.CallOption) (*UpdatePasswordResponse, error) {
|
||||
out := new(UpdatePasswordResponse)
|
||||
err := c.cc.Invoke(ctx, SilvermobiGRPC_UpdatePassword_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *silvermobiGRPCClient) SetPhoneNumber(ctx context.Context, in *SetPhoneNumberRequest, opts ...grpc.CallOption) (*SetPhoneNumberResponse, error) {
|
||||
out := new(SetPhoneNumberResponse)
|
||||
err := c.cc.Invoke(ctx, SilvermobiGRPC_SetPhoneNumber_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *silvermobiGRPCClient) VerifyPhoneNumber(ctx context.Context, in *VerifyPhoneNumberRequest, opts ...grpc.CallOption) (*VerifyPhoneNumberResponse, error) {
|
||||
out := new(VerifyPhoneNumberResponse)
|
||||
err := c.cc.Invoke(ctx, SilvermobiGRPC_VerifyPhoneNumber_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *silvermobiGRPCClient) SetBirthDate(ctx context.Context, in *BirthDateRequest, opts ...grpc.CallOption) (*BirthDateResponse, error) {
|
||||
out := new(BirthDateResponse)
|
||||
err := c.cc.Invoke(ctx, SilvermobiGRPC_SetBirthDate_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *silvermobiGRPCClient) SetKeyValue(ctx context.Context, in *KeyValueRequest, opts ...grpc.CallOption) (*KeyValueResponse, error) {
|
||||
out := new(KeyValueResponse)
|
||||
err := c.cc.Invoke(ctx, SilvermobiGRPC_SetKeyValue_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *silvermobiGRPCClient) GetKeyValue(ctx context.Context, in *KeyRequest, opts ...grpc.CallOption) (*ValueResponse, error) {
|
||||
out := new(ValueResponse)
|
||||
err := c.cc.Invoke(ctx, SilvermobiGRPC_GetKeyValue_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *silvermobiGRPCClient) GetValidation(ctx context.Context, in *ValidationRequest, opts ...grpc.CallOption) (*ValidationResponse, error) {
|
||||
out := new(ValidationResponse)
|
||||
err := c.cc.Invoke(ctx, SilvermobiGRPC_GetValidation_FullMethodName, in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// SilvermobiGRPCServer is the server API for SilvermobiGRPC service.
|
||||
// All implementations must embed UnimplementedSilvermobiGRPCServer
|
||||
// for forward compatibility
|
||||
type SilvermobiGRPCServer interface {
|
||||
// User authentication functions
|
||||
AuthLogin(context.Context, *AuthLoginRequest) (*AuthLoginResponse, error)
|
||||
AuthRegister(context.Context, *AuthRegisterRequest) (*AuthRegisterResponse, error)
|
||||
// User forget password
|
||||
ForgetAccount(context.Context, *ForgetAccountRequest) (*ForgetAccountResponse, error)
|
||||
UpdatePassword(context.Context, *UpdatePasswordRequest) (*UpdatePasswordResponse, error)
|
||||
// phone_number
|
||||
SetPhoneNumber(context.Context, *SetPhoneNumberRequest) (*SetPhoneNumberResponse, error)
|
||||
VerifyPhoneNumber(context.Context, *VerifyPhoneNumberRequest) (*VerifyPhoneNumberResponse, error)
|
||||
SetBirthDate(context.Context, *BirthDateRequest) (*BirthDateResponse, error)
|
||||
// redis
|
||||
SetKeyValue(context.Context, *KeyValueRequest) (*KeyValueResponse, error)
|
||||
GetKeyValue(context.Context, *KeyRequest) (*ValueResponse, error)
|
||||
GetValidation(context.Context, *ValidationRequest) (*ValidationResponse, error)
|
||||
mustEmbedUnimplementedSilvermobiGRPCServer()
|
||||
}
|
||||
|
||||
// UnimplementedSilvermobiGRPCServer must be embedded to have forward compatible implementations.
|
||||
type UnimplementedSilvermobiGRPCServer struct {
|
||||
}
|
||||
|
||||
func (UnimplementedSilvermobiGRPCServer) AuthLogin(context.Context, *AuthLoginRequest) (*AuthLoginResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method AuthLogin not implemented")
|
||||
}
|
||||
func (UnimplementedSilvermobiGRPCServer) AuthRegister(context.Context, *AuthRegisterRequest) (*AuthRegisterResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method AuthRegister not implemented")
|
||||
}
|
||||
func (UnimplementedSilvermobiGRPCServer) ForgetAccount(context.Context, *ForgetAccountRequest) (*ForgetAccountResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ForgetAccount not implemented")
|
||||
}
|
||||
func (UnimplementedSilvermobiGRPCServer) UpdatePassword(context.Context, *UpdatePasswordRequest) (*UpdatePasswordResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method UpdatePassword not implemented")
|
||||
}
|
||||
func (UnimplementedSilvermobiGRPCServer) SetPhoneNumber(context.Context, *SetPhoneNumberRequest) (*SetPhoneNumberResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method SetPhoneNumber not implemented")
|
||||
}
|
||||
func (UnimplementedSilvermobiGRPCServer) VerifyPhoneNumber(context.Context, *VerifyPhoneNumberRequest) (*VerifyPhoneNumberResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method VerifyPhoneNumber not implemented")
|
||||
}
|
||||
func (UnimplementedSilvermobiGRPCServer) SetBirthDate(context.Context, *BirthDateRequest) (*BirthDateResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method SetBirthDate not implemented")
|
||||
}
|
||||
func (UnimplementedSilvermobiGRPCServer) SetKeyValue(context.Context, *KeyValueRequest) (*KeyValueResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method SetKeyValue not implemented")
|
||||
}
|
||||
func (UnimplementedSilvermobiGRPCServer) GetKeyValue(context.Context, *KeyRequest) (*ValueResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetKeyValue not implemented")
|
||||
}
|
||||
func (UnimplementedSilvermobiGRPCServer) GetValidation(context.Context, *ValidationRequest) (*ValidationResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetValidation not implemented")
|
||||
}
|
||||
func (UnimplementedSilvermobiGRPCServer) mustEmbedUnimplementedSilvermobiGRPCServer() {}
|
||||
|
||||
// UnsafeSilvermobiGRPCServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to SilvermobiGRPCServer will
|
||||
// result in compilation errors.
|
||||
type UnsafeSilvermobiGRPCServer interface {
|
||||
mustEmbedUnimplementedSilvermobiGRPCServer()
|
||||
}
|
||||
|
||||
func RegisterSilvermobiGRPCServer(s grpc.ServiceRegistrar, srv SilvermobiGRPCServer) {
|
||||
s.RegisterService(&SilvermobiGRPC_ServiceDesc, srv)
|
||||
}
|
||||
|
||||
func _SilvermobiGRPC_AuthLogin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(AuthLoginRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(SilvermobiGRPCServer).AuthLogin(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: SilvermobiGRPC_AuthLogin_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(SilvermobiGRPCServer).AuthLogin(ctx, req.(*AuthLoginRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _SilvermobiGRPC_AuthRegister_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(AuthRegisterRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(SilvermobiGRPCServer).AuthRegister(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: SilvermobiGRPC_AuthRegister_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(SilvermobiGRPCServer).AuthRegister(ctx, req.(*AuthRegisterRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _SilvermobiGRPC_ForgetAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(ForgetAccountRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(SilvermobiGRPCServer).ForgetAccount(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: SilvermobiGRPC_ForgetAccount_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(SilvermobiGRPCServer).ForgetAccount(ctx, req.(*ForgetAccountRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _SilvermobiGRPC_UpdatePassword_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(UpdatePasswordRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(SilvermobiGRPCServer).UpdatePassword(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: SilvermobiGRPC_UpdatePassword_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(SilvermobiGRPCServer).UpdatePassword(ctx, req.(*UpdatePasswordRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _SilvermobiGRPC_SetPhoneNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(SetPhoneNumberRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(SilvermobiGRPCServer).SetPhoneNumber(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: SilvermobiGRPC_SetPhoneNumber_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(SilvermobiGRPCServer).SetPhoneNumber(ctx, req.(*SetPhoneNumberRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _SilvermobiGRPC_VerifyPhoneNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(VerifyPhoneNumberRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(SilvermobiGRPCServer).VerifyPhoneNumber(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: SilvermobiGRPC_VerifyPhoneNumber_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(SilvermobiGRPCServer).VerifyPhoneNumber(ctx, req.(*VerifyPhoneNumberRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _SilvermobiGRPC_SetBirthDate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(BirthDateRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(SilvermobiGRPCServer).SetBirthDate(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: SilvermobiGRPC_SetBirthDate_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(SilvermobiGRPCServer).SetBirthDate(ctx, req.(*BirthDateRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _SilvermobiGRPC_SetKeyValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(KeyValueRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(SilvermobiGRPCServer).SetKeyValue(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: SilvermobiGRPC_SetKeyValue_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(SilvermobiGRPCServer).SetKeyValue(ctx, req.(*KeyValueRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _SilvermobiGRPC_GetKeyValue_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(KeyRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(SilvermobiGRPCServer).GetKeyValue(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: SilvermobiGRPC_GetKeyValue_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(SilvermobiGRPCServer).GetKeyValue(ctx, req.(*KeyRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _SilvermobiGRPC_GetValidation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(ValidationRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(SilvermobiGRPCServer).GetValidation(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: SilvermobiGRPC_GetValidation_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(SilvermobiGRPCServer).GetValidation(ctx, req.(*ValidationRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// SilvermobiGRPC_ServiceDesc is the grpc.ServiceDesc for SilvermobiGRPC service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
var SilvermobiGRPC_ServiceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "SilvermobiGRPC",
|
||||
HandlerType: (*SilvermobiGRPCServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
MethodName: "AuthLogin",
|
||||
Handler: _SilvermobiGRPC_AuthLogin_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "AuthRegister",
|
||||
Handler: _SilvermobiGRPC_AuthRegister_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "ForgetAccount",
|
||||
Handler: _SilvermobiGRPC_ForgetAccount_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "UpdatePassword",
|
||||
Handler: _SilvermobiGRPC_UpdatePassword_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "SetPhoneNumber",
|
||||
Handler: _SilvermobiGRPC_SetPhoneNumber_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "VerifyPhoneNumber",
|
||||
Handler: _SilvermobiGRPC_VerifyPhoneNumber_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "SetBirthDate",
|
||||
Handler: _SilvermobiGRPC_SetBirthDate_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "SetKeyValue",
|
||||
Handler: _SilvermobiGRPC_SetKeyValue_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GetKeyValue",
|
||||
Handler: _SilvermobiGRPC_GetKeyValue_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GetValidation",
|
||||
Handler: _SilvermobiGRPC_GetValidation_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "silvermobi-service.proto",
|
||||
}
|
||||
45
servers/grpcapi/server/authentication.go
Normal file
45
servers/grpcapi/server/authentication.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package grpcserver
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
grpcproto "git.coopgo.io/coopgo-apps/silvermobi/servers/grpcapi/proto"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
func (s SilvermobiGRPCService) AuthLogin(ctx context.Context, req *grpcproto.AuthLoginRequest) (res *grpcproto.AuthLoginResponse, err error) {
|
||||
log.Info().
|
||||
Str("username", req.Username).
|
||||
Msg("AuthLogin")
|
||||
|
||||
jwt, err := s.Handler.Login(ctx, req.Username, req.Password)
|
||||
if err != nil {
|
||||
log.Error().
|
||||
Err(err).
|
||||
Str("username", req.Username).
|
||||
Msg("user not found")
|
||||
|
||||
return nil, errors.New("user/password not found")
|
||||
}
|
||||
|
||||
return &grpcproto.AuthLoginResponse{
|
||||
Token: jwt,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s SilvermobiGRPCService) AuthRegister(ctx context.Context, req *grpcproto.AuthRegisterRequest) (res *grpcproto.AuthRegisterResponse, err error) {
|
||||
log.Info().
|
||||
Str("username", req.Email).
|
||||
Msg("AuthRegister")
|
||||
|
||||
jwt, err := s.Handler.Register(ctx, req.Email, req.Password, req.Email, req.PhoneNumber, req.FirstName, req.LastName)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("AuthRegister failed")
|
||||
return nil, errors.New("could not register user")
|
||||
}
|
||||
|
||||
return &grpcproto.AuthRegisterResponse{
|
||||
Token: jwt,
|
||||
}, nil
|
||||
}
|
||||
27
servers/grpcapi/server/forget_password.go
Normal file
27
servers/grpcapi/server/forget_password.go
Normal file
@@ -0,0 +1,27 @@
|
||||
package grpcserver
|
||||
|
||||
import (
|
||||
"context"
|
||||
grpcproto "git.coopgo.io/coopgo-apps/silvermobi/servers/grpcapi/proto"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
func (s SilvermobiGRPCService) ForgetAccount(ctx context.Context, req *grpcproto.ForgetAccountRequest) (res *grpcproto.ForgetAccountResponse, err error) {
|
||||
log.Info().
|
||||
Str("username", req.Username).
|
||||
Str("namespace", req.Namespace).
|
||||
Msg("ForgetAccount")
|
||||
response, access_code := s.Handler.ForgetAccount(ctx, req.Username, req.Namespace)
|
||||
if response == true {
|
||||
return &grpcproto.ForgetAccountResponse{
|
||||
Response: true,
|
||||
AccessCode: access_code,
|
||||
}, nil
|
||||
} else {
|
||||
return &grpcproto.ForgetAccountResponse{
|
||||
Response: false,
|
||||
AccessCode: "",
|
||||
}, nil
|
||||
}
|
||||
|
||||
}
|
||||
55
servers/grpcapi/server/onboarding_validation.go
Normal file
55
servers/grpcapi/server/onboarding_validation.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package grpcserver
|
||||
|
||||
import (
|
||||
"context"
|
||||
grpcproto "git.coopgo.io/coopgo-apps/silvermobi/servers/grpcapi/proto"
|
||||
"time"
|
||||
)
|
||||
|
||||
func (s SilvermobiGRPCService) SetPhoneNumber(ctx context.Context, req *grpcproto.SetPhoneNumberRequest) (res *grpcproto.SetPhoneNumberResponse, err error) {
|
||||
if err = s.Handler.UpdatePhoneNumber(
|
||||
context.Background(),
|
||||
req.Email,
|
||||
req.PhoneNumber,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &grpcproto.SetPhoneNumberResponse{Ok: true}, nil
|
||||
}
|
||||
|
||||
func (s SilvermobiGRPCService) VerifyPhoneNumber(ctx context.Context, req *grpcproto.VerifyPhoneNumberRequest) (res *grpcproto.VerifyPhoneNumberResponse, err error) {
|
||||
|
||||
if err = s.Handler.VerifyPhoneNumber(
|
||||
context.Background(),
|
||||
req.Email,
|
||||
req.PhoneNumber,
|
||||
req.VerificationCode,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &grpcproto.VerifyPhoneNumberResponse{Ok: true}, nil
|
||||
}
|
||||
|
||||
func (s SilvermobiGRPCService) SetBirthDate(ctx context.Context, req *grpcproto.BirthDateRequest) (res *grpcproto.BirthDateResponse, err error) {
|
||||
birthdate := time.Unix(req.Birthdate.Seconds, int64(req.Birthdate.Nanos)).UTC()
|
||||
birthdateString := birthdate.Format("2006-01-02T15:04:05Z")
|
||||
if err = s.Handler.UpdateBirthDate(ctx, req.Email, birthdateString); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &grpcproto.BirthDateResponse{
|
||||
Ok: true,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s SilvermobiGRPCService) GetValidation(ctx context.Context, req *grpcproto.ValidationRequest) (res *grpcproto.ValidationResponse, err error) {
|
||||
phone_validation, birth_validation, err := s.Handler.CheckValidation(ctx, req.Email)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &grpcproto.ValidationResponse{
|
||||
Phone: phone_validation,
|
||||
Birthdate: birth_validation,
|
||||
}, nil
|
||||
}
|
||||
125
servers/grpcapi/server/silvermobi-grpc-server.go
Normal file
125
servers/grpcapi/server/silvermobi-grpc-server.go
Normal file
@@ -0,0 +1,125 @@
|
||||
package grpcserver
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net"
|
||||
"strings"
|
||||
|
||||
"git.coopgo.io/coopgo-apps/silvermobi/handler"
|
||||
grpcproto "git.coopgo.io/coopgo-apps/silvermobi/servers/grpcapi/proto"
|
||||
"github.com/golang-jwt/jwt/v4"
|
||||
grpc_middleware "github.com/grpc-ecosystem/go-grpc-middleware"
|
||||
grpc_auth "github.com/grpc-ecosystem/go-grpc-middleware/auth"
|
||||
grpc_ctxtags "github.com/grpc-ecosystem/go-grpc-middleware/tags"
|
||||
"github.com/rs/zerolog/log"
|
||||
"github.com/spf13/viper"
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
|
||||
type contextKey string
|
||||
|
||||
var (
|
||||
contextKeyUser = contextKey("user")
|
||||
)
|
||||
|
||||
type SilvermobiGRPCService struct {
|
||||
Config *viper.Viper
|
||||
Handler *handler.SilvermobiHandler
|
||||
|
||||
grpcproto.UnimplementedSilvermobiGRPCServer
|
||||
}
|
||||
|
||||
func NewSilvermobiGRPCService(cfg *viper.Viper, handler *handler.SilvermobiHandler) SilvermobiGRPCService {
|
||||
return SilvermobiGRPCService{
|
||||
Config: cfg,
|
||||
Handler: handler,
|
||||
}
|
||||
}
|
||||
|
||||
func Run(done chan error, cfg *viper.Viper, handler *handler.SilvermobiHandler) {
|
||||
var (
|
||||
address = "127.0.0.1:" + cfg.GetString("services.external.grpc.port")
|
||||
jwt_secret = cfg.GetString("identification.local.jwt_secret")
|
||||
)
|
||||
|
||||
log.Info().Msg("GRPC server on " + address)
|
||||
|
||||
server := grpc.NewServer(
|
||||
grpc.StreamInterceptor(grpc_middleware.ChainStreamServer(
|
||||
grpc_ctxtags.StreamServerInterceptor(),
|
||||
StreamAuthServerInterceptor(GRPCAuthFunc(jwt_secret)),
|
||||
)),
|
||||
grpc.UnaryInterceptor(grpc_middleware.ChainUnaryServer(
|
||||
grpc_ctxtags.UnaryServerInterceptor(),
|
||||
UnaryAuthServerInterceptor(GRPCAuthFunc(jwt_secret)),
|
||||
)),
|
||||
)
|
||||
|
||||
grpcproto.RegisterSilvermobiGRPCServer(server, NewSilvermobiGRPCService(cfg, handler))
|
||||
l, err := net.Listen("tcp", address)
|
||||
if err != nil {
|
||||
log.Fatal().Err(err)
|
||||
}
|
||||
|
||||
if err := server.Serve(l); err != nil {
|
||||
log.Error().Err(err).Msg("gRPC service ended")
|
||||
done <- err
|
||||
}
|
||||
}
|
||||
|
||||
func UnaryAuthServerInterceptor(authFunc grpc_auth.AuthFunc) grpc.UnaryServerInterceptor {
|
||||
return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) {
|
||||
if NoAuth(info.FullMethod) {
|
||||
return handler(ctx, req)
|
||||
}
|
||||
var newCtx context.Context
|
||||
var err error
|
||||
newCtx, err = authFunc(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return handler(newCtx, req)
|
||||
}
|
||||
}
|
||||
|
||||
func StreamAuthServerInterceptor(authFunc grpc_auth.AuthFunc) grpc.StreamServerInterceptor {
|
||||
return func(srv interface{}, stream grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error {
|
||||
if NoAuth(info.FullMethod) {
|
||||
wrapped := grpc_middleware.WrapServerStream(stream)
|
||||
wrapped.WrappedContext = stream.Context()
|
||||
return handler(srv, wrapped)
|
||||
}
|
||||
var newCtx context.Context
|
||||
var err error
|
||||
newCtx, err = authFunc(stream.Context())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
wrapped := grpc_middleware.WrapServerStream(stream)
|
||||
wrapped.WrappedContext = newCtx
|
||||
return handler(srv, wrapped)
|
||||
}
|
||||
}
|
||||
|
||||
func GRPCAuthFunc(jwtKey string) grpc_auth.AuthFunc {
|
||||
return func(ctx context.Context) (context.Context, error) {
|
||||
tokenString, err := grpc_auth.AuthFromMD(ctx, "bearer")
|
||||
if err != nil {
|
||||
log.Error().Err(err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
claims := jwt.MapClaims{}
|
||||
jwt.ParseWithClaims(tokenString, claims, func(token *jwt.Token) (interface{}, error) {
|
||||
return []byte(jwtKey), nil
|
||||
})
|
||||
|
||||
ctx = context.WithValue(ctx, contextKeyUser, claims["sub"].(string))
|
||||
|
||||
return ctx, nil
|
||||
}
|
||||
}
|
||||
|
||||
func NoAuth(method string) bool {
|
||||
return strings.Contains(method, "Auth")
|
||||
}
|
||||
23
servers/grpcapi/server/update_password.go
Normal file
23
servers/grpcapi/server/update_password.go
Normal file
@@ -0,0 +1,23 @@
|
||||
package grpcserver
|
||||
|
||||
import (
|
||||
"context"
|
||||
grpcproto "git.coopgo.io/coopgo-apps/silvermobi/servers/grpcapi/proto"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
func (s SilvermobiGRPCService) UpdatePassword(ctx context.Context, req *grpcproto.UpdatePasswordRequest) (res *grpcproto.UpdatePasswordResponse, err error) {
|
||||
log.Info().
|
||||
Str("username", req.Email).
|
||||
Msg("Update Password")
|
||||
result := s.Handler.UpdatePassword(ctx, req.Email, req.Password)
|
||||
if result == true {
|
||||
return &grpcproto.UpdatePasswordResponse{
|
||||
Response: true,
|
||||
}, nil
|
||||
} else {
|
||||
return &grpcproto.UpdatePasswordResponse{
|
||||
Response: false,
|
||||
}, nil
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user