1
0
mirror of https://github.com/mainflux/mainflux.git synced 2025-04-27 13:48:49 +08:00
Mainflux.mainflux/pkg/sdk/go/policies.go

42 lines
1012 B
Go
Raw Normal View History

MF-1699 - Enrich SDK and CLI (#1719) * initial commit update api docs Signed-off-by: rodneyosodo <socials@rodneyosodo.com> Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * initial commit enrich sdk Signed-off-by: rodneyosodo <socials@rodneyosodo.com> Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * initial commit enrich cli Signed-off-by: rodneyosodo <socials@rodneyosodo.com> Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * add consumers test Signed-off-by: rodneyosodo <socials@rodneyosodo.com> Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * remove dead code Signed-off-by: rodneyosodo <socials@rodneyosodo.com> Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * add certs sdk tests Signed-off-by: rodneyosodo <socials@rodneyosodo.com> Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * change contact name Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * fix tests Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Rename Disconnect Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Fix subscription typo Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Fix Swagger File Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Add Tests Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Change Limit to 10 Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Remove empty line Signed-off-by: rodneyosodo <blackd0t@protonmail.com> --------- Signed-off-by: rodneyosodo <socials@rodneyosodo.com> Signed-off-by: rodneyosodo <blackd0t@protonmail.com> Co-authored-by: rodneyosodo <socials@rodneyosodo.com>
2023-05-25 06:02:46 +08:00
package sdk
import (
"encoding/json"
"fmt"
"net/http"
"github.com/mainflux/mainflux/pkg/errors"
)
const policiesEndpoint = "policies"
type Policy struct {
Object string `json:"object,omitempty"`
Subject []string `json:"subjects,omitempty"`
Policies []string `json:"policies,omitempty"`
}
func (sdk mfSDK) CreatePolicy(policy Policy, token string) errors.SDKError {
data, err := json.Marshal(policy)
if err != nil {
return errors.NewSDKError(err)
}
url := fmt.Sprintf("%s/%s", sdk.authURL, policiesEndpoint)
_, _, sdkerr := sdk.processRequest(http.MethodPost, url, token, string(CTJSON), data, http.StatusCreated)
return sdkerr
}
func (sdk mfSDK) DeletePolicy(policy Policy, token string) errors.SDKError {
data, err := json.Marshal(policy)
if err != nil {
return errors.NewSDKError(err)
}
url := fmt.Sprintf("%s/%s", sdk.authURL, policiesEndpoint)
_, _, sdkerr := sdk.processRequest(http.MethodDelete, url, token, string(CTJSON), data, http.StatusNoContent)
return sdkerr
}