dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/clients/http/intervalaction.go (about) 1 // 2 // Copyright (C) 2021 IOTech Ltd 3 // Copyright (C) 2023 Intel Corporation 4 // 5 // SPDX-License-Identifier: Apache-2.0 6 7 package http 8 9 import ( 10 "context" 11 "net/url" 12 "strconv" 13 14 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/clients/http/utils" 15 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/clients/interfaces" 16 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/common" 17 dtoCommon "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos/common" 18 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos/requests" 19 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos/responses" 20 "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/errors" 21 ) 22 23 type IntervalActionClient struct { 24 baseUrl string 25 authInjector interfaces.AuthenticationInjector 26 enableNameFieldEscape bool 27 } 28 29 // NewIntervalActionClient creates an instance of IntervalActionClient 30 func NewIntervalActionClient(baseUrl string, authInjector interfaces.AuthenticationInjector, enableNameFieldEscape bool) interfaces.IntervalActionClient { 31 return &IntervalActionClient{ 32 baseUrl: baseUrl, 33 authInjector: authInjector, 34 enableNameFieldEscape: enableNameFieldEscape, 35 } 36 } 37 38 // Add adds new intervalActions 39 func (client IntervalActionClient) Add(ctx context.Context, reqs []requests.AddIntervalActionRequest) ( 40 res []dtoCommon.BaseWithIdResponse, err errors.EdgeX) { 41 err = utils.PostRequestWithRawData(ctx, &res, client.baseUrl, common.ApiIntervalActionRoute, nil, reqs, client.authInjector) 42 if err != nil { 43 return res, errors.NewCommonEdgeXWrapper(err) 44 } 45 return res, nil 46 } 47 48 // Update updates intervalActions 49 func (client IntervalActionClient) Update(ctx context.Context, reqs []requests.UpdateIntervalActionRequest) ( 50 res []dtoCommon.BaseResponse, err errors.EdgeX) { 51 err = utils.PatchRequest(ctx, &res, client.baseUrl, common.ApiIntervalActionRoute, nil, reqs, client.authInjector) 52 if err != nil { 53 return res, errors.NewCommonEdgeXWrapper(err) 54 } 55 return res, nil 56 } 57 58 // AllIntervalActions query the intervalActions with offset, limit 59 func (client IntervalActionClient) AllIntervalActions(ctx context.Context, offset int, limit int) ( 60 res responses.MultiIntervalActionsResponse, err errors.EdgeX) { 61 requestParams := url.Values{} 62 requestParams.Set(common.Offset, strconv.Itoa(offset)) 63 requestParams.Set(common.Limit, strconv.Itoa(limit)) 64 err = utils.GetRequest(ctx, &res, client.baseUrl, common.ApiAllIntervalActionRoute, requestParams, client.authInjector) 65 if err != nil { 66 return res, errors.NewCommonEdgeXWrapper(err) 67 } 68 return res, nil 69 } 70 71 // IntervalActionByName query the intervalAction by name 72 func (client IntervalActionClient) IntervalActionByName(ctx context.Context, name string) ( 73 res responses.IntervalActionResponse, err errors.EdgeX) { 74 path := common.NewPathBuilder().EnableNameFieldEscape(client.enableNameFieldEscape). 75 SetPath(common.ApiIntervalActionRoute).SetPath(common.Name).SetNameFieldPath(name).BuildPath() 76 err = utils.GetRequest(ctx, &res, client.baseUrl, path, nil, client.authInjector) 77 if err != nil { 78 return res, errors.NewCommonEdgeXWrapper(err) 79 } 80 return res, nil 81 } 82 83 // DeleteIntervalActionByName delete the intervalAction by name 84 func (client IntervalActionClient) DeleteIntervalActionByName(ctx context.Context, name string) ( 85 res dtoCommon.BaseResponse, err errors.EdgeX) { 86 path := common.NewPathBuilder().EnableNameFieldEscape(client.enableNameFieldEscape). 87 SetPath(common.ApiIntervalActionRoute).SetPath(common.Name).SetNameFieldPath(name).BuildPath() 88 err = utils.DeleteRequest(ctx, &res, client.baseUrl, path, client.authInjector) 89 if err != nil { 90 return res, errors.NewCommonEdgeXWrapper(err) 91 } 92 return res, nil 93 }