dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts@v1.0.2/clients/http/provisionwatcher.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  	"strings"
    14  
    15  	"dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/clients/http/utils"
    16  	"dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/clients/interfaces"
    17  	"dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/common"
    18  	dtoCommon "dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos/common"
    19  	"dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos/requests"
    20  	"dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/dtos/responses"
    21  	"dev.azure.com/aidainnovazione0090/DeviceManager/_git/go-mod-core-contracts/errors"
    22  )
    23  
    24  type ProvisionWatcherClient struct {
    25  	baseUrl               string
    26  	authInjector          interfaces.AuthenticationInjector
    27  	enableNameFieldEscape bool
    28  }
    29  
    30  // NewProvisionWatcherClient creates an instance of ProvisionWatcherClient
    31  func NewProvisionWatcherClient(baseUrl string, authInjector interfaces.AuthenticationInjector, enableNameFieldEscape bool) interfaces.ProvisionWatcherClient {
    32  	return &ProvisionWatcherClient{
    33  		baseUrl:               baseUrl,
    34  		authInjector:          authInjector,
    35  		enableNameFieldEscape: enableNameFieldEscape,
    36  	}
    37  }
    38  
    39  func (pwc ProvisionWatcherClient) Add(ctx context.Context, reqs []requests.AddProvisionWatcherRequest) (res []dtoCommon.BaseWithIdResponse, err errors.EdgeX) {
    40  	err = utils.PostRequestWithRawData(ctx, &res, pwc.baseUrl, common.ApiProvisionWatcherRoute, nil, reqs, pwc.authInjector)
    41  	if err != nil {
    42  		return res, errors.NewCommonEdgeXWrapper(err)
    43  	}
    44  
    45  	return
    46  }
    47  
    48  func (pwc ProvisionWatcherClient) Update(ctx context.Context, reqs []requests.UpdateProvisionWatcherRequest) (res []dtoCommon.BaseResponse, err errors.EdgeX) {
    49  	err = utils.PatchRequest(ctx, &res, pwc.baseUrl, common.ApiProvisionWatcherRoute, nil, reqs, pwc.authInjector)
    50  	if err != nil {
    51  		return res, errors.NewCommonEdgeXWrapper(err)
    52  	}
    53  
    54  	return
    55  }
    56  
    57  func (pwc ProvisionWatcherClient) AllProvisionWatchers(ctx context.Context, labels []string, offset int, limit int) (res responses.MultiProvisionWatchersResponse, err errors.EdgeX) {
    58  	requestParams := url.Values{}
    59  	if len(labels) > 0 {
    60  		requestParams.Set(common.Labels, strings.Join(labels, common.CommaSeparator))
    61  	}
    62  	requestParams.Set(common.Offset, strconv.Itoa(offset))
    63  	requestParams.Set(common.Limit, strconv.Itoa(limit))
    64  	err = utils.GetRequest(ctx, &res, pwc.baseUrl, common.ApiAllProvisionWatcherRoute, requestParams, pwc.authInjector)
    65  	if err != nil {
    66  		return res, errors.NewCommonEdgeXWrapper(err)
    67  	}
    68  
    69  	return
    70  }
    71  
    72  func (pwc ProvisionWatcherClient) ProvisionWatcherByName(ctx context.Context, name string) (res responses.ProvisionWatcherResponse, err errors.EdgeX) {
    73  	path := common.NewPathBuilder().EnableNameFieldEscape(pwc.enableNameFieldEscape).
    74  		SetPath(common.ApiProvisionWatcherRoute).SetPath(common.Name).SetNameFieldPath(name).BuildPath()
    75  	err = utils.GetRequest(ctx, &res, pwc.baseUrl, path, nil, pwc.authInjector)
    76  	if err != nil {
    77  		return res, errors.NewCommonEdgeXWrapper(err)
    78  	}
    79  
    80  	return
    81  }
    82  
    83  func (pwc ProvisionWatcherClient) DeleteProvisionWatcherByName(ctx context.Context, name string) (res dtoCommon.BaseResponse, err errors.EdgeX) {
    84  	path := common.NewPathBuilder().EnableNameFieldEscape(pwc.enableNameFieldEscape).
    85  		SetPath(common.ApiProvisionWatcherRoute).SetPath(common.Name).SetNameFieldPath(name).BuildPath()
    86  	err = utils.DeleteRequest(ctx, &res, pwc.baseUrl, path, pwc.authInjector)
    87  	if err != nil {
    88  		return res, errors.NewCommonEdgeXWrapper(err)
    89  	}
    90  
    91  	return
    92  }
    93  
    94  func (pwc ProvisionWatcherClient) ProvisionWatchersByProfileName(ctx context.Context, name string, offset int, limit int) (res responses.MultiProvisionWatchersResponse, err errors.EdgeX) {
    95  	requestPath := common.NewPathBuilder().EnableNameFieldEscape(pwc.enableNameFieldEscape).
    96  		SetPath(common.ApiProvisionWatcherRoute).SetPath(common.Profile).SetPath(common.Name).SetNameFieldPath(name).BuildPath()
    97  	requestParams := url.Values{}
    98  	requestParams.Set(common.Offset, strconv.Itoa(offset))
    99  	requestParams.Set(common.Limit, strconv.Itoa(limit))
   100  	err = utils.GetRequest(ctx, &res, pwc.baseUrl, requestPath, requestParams, pwc.authInjector)
   101  	if err != nil {
   102  		return res, errors.NewCommonEdgeXWrapper(err)
   103  	}
   104  
   105  	return
   106  }
   107  
   108  func (pwc ProvisionWatcherClient) ProvisionWatchersByServiceName(ctx context.Context, name string, offset int, limit int) (res responses.MultiProvisionWatchersResponse, err errors.EdgeX) {
   109  	requestPath := common.NewPathBuilder().EnableNameFieldEscape(pwc.enableNameFieldEscape).
   110  		SetPath(common.ApiProvisionWatcherRoute).SetPath(common.Service).SetPath(common.Name).SetNameFieldPath(name).BuildPath()
   111  	requestParams := url.Values{}
   112  	requestParams.Set(common.Offset, strconv.Itoa(offset))
   113  	requestParams.Set(common.Limit, strconv.Itoa(limit))
   114  	err = utils.GetRequest(ctx, &res, pwc.baseUrl, requestPath, requestParams, pwc.authInjector)
   115  	if err != nil {
   116  		return res, errors.NewCommonEdgeXWrapper(err)
   117  	}
   118  
   119  	return
   120  }