Files
decort-golang-sdk/pkg/cloudbroker/user/create.go

51 lines
1.3 KiB
Go
Raw Normal View History

2023-06-23 15:13:22 +03:00
package user
import (
"context"
"net/http"
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
)
2023-10-25 17:37:18 +03:00
// CreateRequest struct for creating a user.
2023-06-23 15:13:22 +03:00
type CreateRequest struct {
// ID of user.
// Required: true
Username string `url:"username" json:"username" validate:"required"`
2025-12-16 14:22:57 +03:00
// Email address of the user.
2023-06-23 15:13:22 +03:00
// Required: true
2025-12-16 14:22:57 +03:00
EmailAddress string `url:"emailaddress" json:"emailaddress" validate:"required"`
2023-06-23 15:13:22 +03:00
// Password of user
// Required: false
2025-07-15 17:39:18 +03:00
// Default: strongpassword
2023-06-23 15:13:22 +03:00
Password string `url:"password,omitempty" json:"password,omitempty"`
// List of apiaccess groups this user belongs to.
// Required: false
APIAccess []uint64 `url:"apiaccess,omitempty" json:"apiaccess,omitempty"`
2025-07-15 17:39:18 +03:00
// Provider of user
// one of: bvs, decs3o
// Required: false
Provider string `url:"provider,omitempty" json:"provider,omitempty" validate:"omitempty,userProvider"`
2023-06-23 15:13:22 +03:00
}
// Create creates a user.
2025-12-16 14:22:57 +03:00
func (u User) Create(ctx context.Context, req CreateRequest) (string, error) {
2023-06-23 15:13:22 +03:00
err := validators.ValidateRequest(req)
if err != nil {
2025-12-16 14:22:57 +03:00
return "", validators.ValidationErrors(validators.GetErrors(err))
2023-06-23 15:13:22 +03:00
}
url := "/cloudbroker/user/create"
res, err := u.client.DecortApiCall(ctx, http.MethodPost, url, req)
if err != nil {
2025-12-16 14:22:57 +03:00
return "", err
2023-06-23 15:13:22 +03:00
}
2025-12-16 14:22:57 +03:00
return string(res), nil
2023-06-23 15:13:22 +03:00
}