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 }