mirror of
https://github.com/hanzokms/terraform-provider.git
synced 2026-10-30 20:29:45 +00:00
119 lines
3.5 KiB
Go
119 lines
3.5 KiB
Go
package kmsclient
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/hanzokms/terraform-provider/internal/errors"
|
|
"net/http"
|
|
)
|
|
|
|
const (
|
|
operationCreateOrgRole = "CallCreateOrgRole"
|
|
operationDeleteOrgRole = "CallDeleteOrgRole"
|
|
operationUpdateOrgRole = "CallUpdateOrgRole"
|
|
operationGetOrgRoleBySlug = "CallGetOrgRoleBySlug"
|
|
operationGetOrgRoleById = "CallGetOrgRoleById"
|
|
)
|
|
|
|
func (client Client) CreateOrgRole(request CreateOrgRoleRequest) (CreateOrgRoleResponse, error) {
|
|
var responseData CreateOrgRoleResponse
|
|
response, err := client.Config.HttpClient.
|
|
R().
|
|
SetResult(&responseData).
|
|
SetHeader("User-Agent", USER_AGENT).
|
|
SetBody(request).
|
|
Post("api/v1/organization/roles")
|
|
|
|
if err != nil {
|
|
return CreateOrgRoleResponse{}, errors.NewGenericRequestError(operationCreateOrgRole, err)
|
|
}
|
|
|
|
if response.IsError() {
|
|
return CreateOrgRoleResponse{}, errors.NewAPIErrorWithResponse(operationCreateOrgRole, response, nil)
|
|
}
|
|
|
|
return responseData, nil
|
|
}
|
|
|
|
func (client Client) UpdateOrgRole(request UpdateOrgRoleRequest) (UpdateOrgRoleResponse, error) {
|
|
var responseData UpdateOrgRoleResponse
|
|
response, err := client.Config.HttpClient.
|
|
R().
|
|
SetResult(&responseData).
|
|
SetHeader("User-Agent", USER_AGENT).
|
|
SetBody(request).
|
|
Patch(fmt.Sprintf("api/v1/organization/roles/%s", request.RoleId))
|
|
|
|
if err != nil {
|
|
return UpdateOrgRoleResponse{}, errors.NewGenericRequestError(operationUpdateOrgRole, err)
|
|
}
|
|
|
|
if response.IsError() {
|
|
return UpdateOrgRoleResponse{}, errors.NewAPIErrorWithResponse(operationUpdateOrgRole, response, nil)
|
|
}
|
|
|
|
return responseData, nil
|
|
}
|
|
|
|
func (client Client) DeleteOrgRole(request DeleteOrgRoleRequest) (DeleteOrgRoleResponse, error) {
|
|
var responseData DeleteOrgRoleResponse
|
|
response, err := client.Config.HttpClient.
|
|
R().
|
|
SetResult(&responseData).
|
|
SetHeader("User-Agent", USER_AGENT).
|
|
Delete(fmt.Sprintf("api/v1/organization/roles/%s", request.RoleId))
|
|
|
|
if err != nil {
|
|
return DeleteOrgRoleResponse{}, errors.NewGenericRequestError(operationDeleteOrgRole, err)
|
|
}
|
|
|
|
if response.IsError() {
|
|
return DeleteOrgRoleResponse{}, errors.NewAPIErrorWithResponse(operationDeleteOrgRole, response, nil)
|
|
}
|
|
|
|
return responseData, nil
|
|
}
|
|
|
|
func (client Client) GetOrgRoleBySlug(request GetOrgRoleBySlugRequest) (GetOrgRoleBySlugResponse, error) {
|
|
var responseData GetOrgRoleBySlugResponse
|
|
response, err := client.Config.HttpClient.
|
|
R().
|
|
SetResult(&responseData).
|
|
SetHeader("User-Agent", USER_AGENT).
|
|
Get(fmt.Sprintf("api/v1/organization/roles/slug/%s", request.RoleSlug))
|
|
|
|
if err != nil {
|
|
return GetOrgRoleBySlugResponse{}, errors.NewGenericRequestError(operationGetOrgRoleBySlug, err)
|
|
}
|
|
|
|
if response.IsError() {
|
|
if response.StatusCode() == http.StatusNotFound {
|
|
return GetOrgRoleBySlugResponse{}, ErrNotFound
|
|
}
|
|
return GetOrgRoleBySlugResponse{}, errors.NewAPIErrorWithResponse(operationGetOrgRoleBySlug, response, nil)
|
|
}
|
|
|
|
return responseData, nil
|
|
}
|
|
|
|
func (client Client) GetOrgRoleById(request GetOrgRoleByIdRequest) (GetOrgRoleByIdResponse, error) {
|
|
var responseData GetOrgRoleByIdResponse
|
|
response, err := client.Config.HttpClient.
|
|
R().
|
|
SetResult(&responseData).
|
|
SetHeader("User-Agent", USER_AGENT).
|
|
Get(fmt.Sprintf("api/v1/organization/roles/%s", request.RoleId))
|
|
|
|
if err != nil {
|
|
return GetOrgRoleByIdResponse{}, errors.NewGenericRequestError(operationGetOrgRoleById, err)
|
|
}
|
|
|
|
if response.IsError() {
|
|
if response.StatusCode() == http.StatusNotFound {
|
|
return GetOrgRoleByIdResponse{}, ErrNotFound
|
|
}
|
|
return GetOrgRoleByIdResponse{}, errors.NewAPIErrorWithResponse(operationGetOrgRoleById, response, nil)
|
|
}
|
|
|
|
return responseData, nil
|
|
}
|