-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathitems.go
136 lines (116 loc) · 3.49 KB
/
items.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// Code generated by op-codegen - DO NOT EDIT
package onepassword
import (
"context"
"encoding/json"
"github.com/1password/onepassword-sdk-go/internal"
)
// The Items API holds all operations the SDK client can perform on 1Password items.
type ItemsAPI interface {
// Create a new item.
Create(ctx context.Context, params ItemCreateParams) (Item, error)
// Get an item by vault and item ID
Get(ctx context.Context, vaultID string, itemID string) (Item, error)
// Update an existing item.
Put(ctx context.Context, item Item) (Item, error)
// Delete an item.
Delete(ctx context.Context, vaultID string, itemID string) error
// Archive an item.
Archive(ctx context.Context, vaultID string, itemID string) error
// List all items
ListAll(ctx context.Context, vaultID string) (*Iterator[ItemOverview], error)
// ----- Sub APIs - these methods are used to access subordinate function groups -----
Shares() ItemsSharesAPI
Files() ItemsFilesAPI
}
type ItemsSource struct {
internal.InnerClient
SharesAPI ItemsSharesAPI
FilesAPI ItemsFilesAPI
}
func NewItemsSource(inner internal.InnerClient) ItemsAPI {
return &ItemsSource{InnerClient: inner, SharesAPI: NewItemsSharesSource(inner), FilesAPI: NewItemsFilesSource(inner)}
}
func (i ItemsSource) Shares() ItemsSharesAPI {
return i.SharesAPI
}
func (i ItemsSource) Files() ItemsFilesAPI {
return i.FilesAPI
}
// Create a new item.
func (i ItemsSource) Create(ctx context.Context, params ItemCreateParams) (Item, error) {
resultString, err := clientInvoke(ctx, i.InnerClient, "ItemsCreate", map[string]interface{}{
"params": params,
})
if err != nil {
return Item{}, err
}
var result Item
err = json.Unmarshal([]byte(*resultString), &result)
if err != nil {
return Item{}, err
}
return result, nil
}
// Get an item by vault and item ID
func (i ItemsSource) Get(ctx context.Context, vaultID string, itemID string) (Item, error) {
resultString, err := clientInvoke(ctx, i.InnerClient, "ItemsGet", map[string]interface{}{
"vault_id": vaultID,
"item_id": itemID,
})
if err != nil {
return Item{}, err
}
var result Item
err = json.Unmarshal([]byte(*resultString), &result)
if err != nil {
return Item{}, err
}
return result, nil
}
// Update an existing item.
func (i ItemsSource) Put(ctx context.Context, item Item) (Item, error) {
resultString, err := clientInvoke(ctx, i.InnerClient, "ItemsPut", map[string]interface{}{
"item": item,
})
if err != nil {
return Item{}, err
}
var result Item
err = json.Unmarshal([]byte(*resultString), &result)
if err != nil {
return Item{}, err
}
return result, nil
}
// Delete an item.
func (i ItemsSource) Delete(ctx context.Context, vaultID string, itemID string) error {
_, err := clientInvoke(ctx, i.InnerClient, "ItemsDelete", map[string]interface{}{
"vault_id": vaultID,
"item_id": itemID,
})
return err
}
// Archive an item.
func (i ItemsSource) Archive(ctx context.Context, vaultID string, itemID string) error {
_, err := clientInvoke(ctx, i.InnerClient, "ItemsArchive", map[string]interface{}{
"vault_id": vaultID,
"item_id": itemID,
})
return err
}
// List all items
func (i ItemsSource) ListAll(ctx context.Context, vaultID string) (*Iterator[ItemOverview], error) {
resultString, err := clientInvoke(ctx, i.InnerClient, "ItemsListAll", map[string]interface{}{
"vault_id": vaultID,
})
if err != nil {
return nil, err
}
var result []ItemOverview
err = json.Unmarshal([]byte(*resultString), &result)
if err != nil {
return nil, err
}
return NewIterator(result), nil
}