gitlab.com/picnic-app/backend/role-api@v0.0.0-20230614140944-06a76ff3696d/internal/controller/create_role.go (about)

     1  package controller
     2  
     3  import (
     4  	"context"
     5  
     6  	v1 "gitlab.com/picnic-app/backend/libs/golang/protobuf-registry/gen/role-api/role/v1"
     7  	"gitlab.com/picnic-app/backend/role-api/internal/controller/deserialize"
     8  	"gitlab.com/picnic-app/backend/role-api/internal/errors"
     9  )
    10  
    11  func (c Controller) CreateRole(ctx context.Context, req *v1.CreateRoleRequest) (*v1.CreateRoleResponse, error) {
    12  	if req == nil {
    13  		return nil, errors.InvalidArgumentError("request")
    14  	}
    15  
    16  	if req.Role == nil {
    17  		return nil, errors.InvalidArgumentError("role")
    18  	}
    19  
    20  	role := deserialize.Role(req.Role)
    21  
    22  	out, err := c.service.CreateRole(ctx, role)
    23  	if err != nil {
    24  		return nil, err
    25  	}
    26  
    27  	return &v1.CreateRoleResponse{
    28  		Id: out.ID,
    29  	}, nil
    30  }