aboutsummaryrefslogtreecommitdiff
path: root/external/evcli
diff options
context:
space:
mode:
authorJulien Dessaux2023-09-24 01:23:50 +0200
committerJulien Dessaux2023-09-24 01:23:50 +0200
commit4f77442eff59061ac5ab9f710fdb6fe998fedb5f (patch)
tree79fc8205bdbcebd9c805ed5c4a229affa0b3fdff /external/evcli
parentUpdated dependencies (diff)
downloadterraform-provider-eventline-4f77442eff59061ac5ab9f710fdb6fe998fedb5f.tar.gz
terraform-provider-eventline-4f77442eff59061ac5ab9f710fdb6fe998fedb5f.tar.bz2
terraform-provider-eventline-4f77442eff59061ac5ab9f710fdb6fe998fedb5f.zip
Add identity resource
Diffstat (limited to 'external/evcli')
-rw-r--r--external/evcli/client.go31
-rw-r--r--external/evcli/identities.go28
2 files changed, 31 insertions, 28 deletions
diff --git a/external/evcli/client.go b/external/evcli/client.go
index 769c19c..3720115 100644
--- a/external/evcli/client.go
+++ b/external/evcli/client.go
@@ -181,6 +181,12 @@ func (c *Client) UpdateProject(project *eventline.Project) error {
return c.SendRequest("PUT", uri, project, nil)
}
+func (c *Client) CreateIdentity(identity *Identity) error {
+ uri := NewURL("identities")
+
+ return c.SendRequest("POST", uri, identity, identity)
+}
+
func (c *Client) FetchIdentities() (Identities, error) {
var identities Identities
@@ -209,6 +215,31 @@ func (c *Client) FetchIdentities() (Identities, error) {
return identities, nil
}
+func (c *Client) FetchIdentityById(id eventline.Id) (*Identity, error) {
+ uri := NewURL("identities", "id", id.String())
+
+ var identity Identity
+
+ err := c.SendRequest("GET", uri, nil, &identity)
+ if err != nil {
+ return nil, err
+ }
+
+ return &identity, nil
+}
+
+func (c *Client) UpdateIdentity(identity *Identity) error {
+ uri := NewURL("identities", "id", identity.Id.String())
+
+ return c.SendRequest("PUT", uri, identity, identity)
+}
+
+func (c *Client) DeleteIdentity(id eventline.Id) error {
+ uri := NewURL("identities", "id", id.String())
+
+ return c.SendRequest("DELETE", uri, nil, nil)
+}
+
func (c *Client) ReplayEvent(id string) (*eventline.Event, error) {
var event eventline.Event
diff --git a/external/evcli/identities.go b/external/evcli/identities.go
index f89ae1b..a2c2549 100644
--- a/external/evcli/identities.go
+++ b/external/evcli/identities.go
@@ -2,7 +2,6 @@ package evcli
import (
"encoding/json"
- "fmt"
"time"
"github.com/exograd/eventline/pkg/eventline"
@@ -27,7 +26,6 @@ type Identity struct {
RefreshTime *time.Time `json:"refresh_time,omitempty"`
Connector string `json:"connector"`
Type string `json:"type"`
- Data eventline.IdentityData `json:"-"`
RawData json.RawMessage `json:"data"`
}
@@ -45,29 +43,3 @@ func (i *Identity) SortKey(sort string) (key string) {
return
}
-
-func (pi *Identity) MarshalJSON() ([]byte, error) {
- type Identity2 Identity
-
- i := Identity2(*pi)
- data, err := json.Marshal(i.Data)
- if err != nil {
- return nil, fmt.Errorf("cannot encode data: %w", err)
- }
-
- i.RawData = data
-
- return json.Marshal(i)
-}
-
-func (pi *Identity) UnmarshalJSON(data []byte) error {
- type Identity2 Identity
-
- i := Identity2(*pi)
- if err := json.Unmarshal(data, &i); err != nil {
- return err
- }
-
- *pi = Identity(i)
- return nil
-}