github.com/optim-corp/cios-golang-sdk@v0.5.1/sdk/service/device/device_policy.go (about)

     1  package srvdevice
     2  
     3  import (
     4  	_nethttp "net/http"
     5  
     6  	ciosctx "github.com/optim-corp/cios-golang-sdk/ctx"
     7  
     8  	cnv "github.com/fcfcqloow/go-advance/convert"
     9  
    10  	xmath "github.com/fcfcqloow/go-advance/math"
    11  
    12  	"github.com/optim-corp/cios-golang-sdk/cios"
    13  	"github.com/optim-corp/cios-golang-sdk/util"
    14  )
    15  
    16  func MakeGetPoliciesOpts() cios.ApiGetDevicePoliciesRequest {
    17  	return cios.ApiGetDevicePoliciesRequest{}
    18  }
    19  
    20  func (self *CiosDeviceManagement) GetPolicies(ctx ciosctx.RequestCtx, params cios.ApiGetDevicePoliciesRequest) (response cios.MultipleDevicePolicy, httpResponse *_nethttp.Response, err error) {
    21  	if err := self.refresh(); err != nil {
    22  		return cios.MultipleDevicePolicy{}, nil, err
    23  	}
    24  	params.Ctx = self.withHost(ctx)
    25  	params.ApiService = self.ApiClient.DeviceApi
    26  	params.P_order = util.ToNil(params.P_order)
    27  	params.P_orderBy = util.ToNil(params.P_orderBy)
    28  	params.P_resourceOwnerId = util.ToNil(params.P_resourceOwnerId)
    29  	return params.Execute()
    30  }
    31  
    32  func (self *CiosDeviceManagement) GetPoliciesAll(ctx ciosctx.RequestCtx, params cios.ApiGetDevicePoliciesRequest) ([]cios.DevicePolicy, *_nethttp.Response, error) {
    33  	var (
    34  		result       []cios.DevicePolicy
    35  		httpResponse *_nethttp.Response
    36  		err          error
    37  		_limit       = int64(1000)
    38  		offset       = int64(0)
    39  		getFunction  = func(offset int64) (cios.MultipleDevicePolicy, *_nethttp.Response, error) {
    40  			return self.GetPolicies(ctx, params.Limit(xmath.MinInt64(_limit, 1000)).Offset(offset+cnv.MustInt64(params.P_offset)))
    41  		}
    42  	)
    43  	if params.P_limit != nil {
    44  		_limit = *params.P_limit
    45  		for {
    46  			res, httpRes, err := getFunction(offset)
    47  			if err != nil {
    48  				return nil, httpRes, err
    49  			}
    50  			result = append(result, res.Policies...)
    51  			offset += 1000
    52  			_limit -= 1000
    53  			if _limit <= 0 {
    54  				break
    55  			}
    56  		}
    57  	} else {
    58  		res, httpRes, err := getFunction(offset)
    59  		if err != nil {
    60  			return nil, httpRes, err
    61  		}
    62  		result = append(result, res.Policies...)
    63  		for offset = int64(1000); offset+cnv.MustInt64(params.P_offset) < res.Total; offset += 1000 {
    64  			res, httpRes, err = getFunction(offset)
    65  			if err != nil {
    66  				return nil, httpRes, err
    67  			}
    68  			result = append(result, res.Policies...)
    69  		}
    70  	}
    71  	return result, httpResponse, err
    72  }
    73  func (self *CiosDeviceManagement) GetPoliciesUnlimited(ctx ciosctx.RequestCtx, params cios.ApiGetDevicePoliciesRequest) ([]cios.DevicePolicy, *_nethttp.Response, error) {
    74  	params.P_limit = nil
    75  	return self.GetPoliciesAll(ctx, params)
    76  }
    77  func (self *CiosDeviceManagement) DeletePolicy(ctx ciosctx.RequestCtx, id string) (*_nethttp.Response, error) {
    78  	if err := self.refresh(); err != nil {
    79  		return nil, err
    80  	}
    81  	return self.ApiClient.DeviceApi.DeletePolicy(self.withHost(ctx), id).Execute()
    82  }
    83  func (self *CiosDeviceManagement) CreatePolicy(ctx ciosctx.RequestCtx, resourceOwnerID string) (cios.DevicePolicy, *_nethttp.Response, error) {
    84  	if err := self.refresh(); err != nil {
    85  		return cios.DevicePolicy{}, nil, err
    86  	}
    87  	return self.ApiClient.DeviceApi.CreateDevicePolicy(self.withHost(ctx)).DevicePolicyRequest(cios.DevicePolicyRequest{ResourceOwnerId: resourceOwnerID}).Execute()
    88  }