Create an env using api
This commit is contained in:
@ -21,7 +21,7 @@ func NewAccountRPCImpl(contoller ctrl.Manager, hashCost int16) *AccountsServer {
|
||||
type AccountsServer struct {
|
||||
accounts.UnimplementedAccountsServer
|
||||
Controller ctrl.Manager
|
||||
Params *controllers.AccountParams
|
||||
Params *controllers.AccountParams
|
||||
}
|
||||
|
||||
func (a *AccountsServer) SignUp(ctx context.Context, in *accounts.AccountWithPassword) (*accounts.AccountFullWithToken, error) {
|
||||
@ -78,4 +78,3 @@ func populateAccount(data *controllers.AccountData, controller ctrl.Manager) *co
|
||||
Data: data,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -7,47 +7,61 @@ import (
|
||||
"git.badhouseplants.net/softplayer/softplayer-backend/internal/controllers"
|
||||
"git.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/email"
|
||||
proto_email "git.badhouseplants.net/softplayer/softplayer-go-proto/pkg/email"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/metadata"
|
||||
"google.golang.org/protobuf/types/known/emptypb"
|
||||
ctrl "sigs.k8s.io/controller-runtime"
|
||||
)
|
||||
|
||||
type EmailServer struct {
|
||||
proto_email.UnimplementedEmailValidationServer
|
||||
emailConfig email.EmailConf
|
||||
controller ctrl.Manager
|
||||
|
||||
emailConfig email.EmailConf
|
||||
controller ctrl.Manager
|
||||
devMode bool
|
||||
}
|
||||
|
||||
func InitEmailServer(controller ctrl.Manager, emailConfig *email.EmailConf) *EmailServer {
|
||||
func InitEmailServer(controller ctrl.Manager, emailConfig *email.EmailConf, devMode bool) *EmailServer {
|
||||
return &EmailServer{
|
||||
controller: controller,
|
||||
controller: controller,
|
||||
emailConfig: *emailConfig,
|
||||
devMode: devMode,
|
||||
}
|
||||
}
|
||||
|
||||
func (c *EmailServer) SendRequest(ctx context.Context, in *proto_email.RequestValidation) (*emptypb.Empty, error) {
|
||||
emailSvc := controllers.EmailSvc {
|
||||
emailSvc := controllers.EmailSvc{
|
||||
Data: controllers.EmailData{
|
||||
UserID: in.GetUserId(),
|
||||
},
|
||||
EmailConfig: c.emailConfig,
|
||||
Controller: c.controller,
|
||||
Controller: c.controller,
|
||||
DevMode: c.devMode,
|
||||
}
|
||||
err := emailSvc.SendVerification(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if c.devMode {
|
||||
header := metadata.Pairs("code", emailSvc.Data.Code)
|
||||
if err := grpc.SendHeader(ctx, header); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
trailer := metadata.Pairs("trailer-key", "val")
|
||||
if err := grpc.SetTrailer(ctx, trailer); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
return &emptypb.Empty{}, nil
|
||||
}
|
||||
|
||||
func (c *EmailServer) ValidateEmail(ctx context.Context, in *proto_email.ConfirmValidation) (*emptypb.Empty, error) {
|
||||
emailSvc := controllers.EmailSvc {
|
||||
emailSvc := controllers.EmailSvc{
|
||||
Data: controllers.EmailData{
|
||||
UserID: in.GetUserId(),
|
||||
Code: fmt.Sprintf("%d", in.GetCode()),
|
||||
Code: fmt.Sprintf("%d", in.GetCode()),
|
||||
},
|
||||
EmailConfig: c.emailConfig,
|
||||
Controller: c.controller,
|
||||
Controller: c.controller,
|
||||
}
|
||||
err := emailSvc.ConfirmVerification(ctx)
|
||||
if err != nil {
|
||||
|
@ -2,28 +2,51 @@ package v1
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
"git.badhouseplants.net/softplayer/softplayer-backend/internal/controllers"
|
||||
proto "git.badhouseplants.net/softplayer/softplayer-go-proto/pkg/environments"
|
||||
"github.com/golang/protobuf/ptypes/empty"
|
||||
"google.golang.org/grpc/metadata"
|
||||
ctrl "sigs.k8s.io/controller-runtime"
|
||||
)
|
||||
|
||||
func NewapiGrpcImpl() *EnvironmentsServer {
|
||||
return &EnvironmentsServer{}
|
||||
func NewapiGrpcImpl(controller ctrl.Manager) *EnvironmentsServer {
|
||||
return &EnvironmentsServer{
|
||||
controller: controller,
|
||||
}
|
||||
}
|
||||
|
||||
type EnvironmentsServer struct {
|
||||
proto.UnimplementedEnvironmentsServer
|
||||
controller ctrl.Manager
|
||||
}
|
||||
|
||||
func (e *EnvironmentsServer) Create(ctx context.Context, in *proto.EnvironmentData) (*proto.EnvironmentFull, error) {
|
||||
md, ok := metadata.FromIncomingContext(ctx)
|
||||
if !ok {
|
||||
return nil, errors.New("metadata is not provided")
|
||||
}
|
||||
token, ok := md["token"]
|
||||
if !ok {
|
||||
return nil, errors.New("token is not sent via metadata")
|
||||
}
|
||||
|
||||
uuid, ok := md["uuid"]
|
||||
if !ok {
|
||||
return nil, errors.New("used id is not sent via metadata")
|
||||
}
|
||||
|
||||
data := &controllers.EnvironemntData{
|
||||
Name: in.GetName(),
|
||||
Provider: in.GetProvider().String(),
|
||||
Name: in.GetName(),
|
||||
Provider: in.GetProvider().String(),
|
||||
Kubernetes: in.GetKubernetes().String(),
|
||||
}
|
||||
environment := &controllers.Environemnt{
|
||||
Controller: nil,
|
||||
UserID: uuid[0],
|
||||
Controller: e.controller,
|
||||
Data: data,
|
||||
Token: token[0],
|
||||
}
|
||||
err := environment.Create(ctx)
|
||||
if err != nil {
|
||||
|
Reference in New Issue
Block a user