67 lines
1.6 KiB
Go
67 lines
1.6 KiB
Go
package infisical
|
|
|
|
import (
|
|
api "github.com/infisical/go-sdk/packages/api/folders"
|
|
"github.com/infisical/go-sdk/packages/models"
|
|
)
|
|
|
|
type ListFoldersOptions = api.ListFoldersV1Request
|
|
type UpdateFolderOptions = api.UpdateFolderV1Request
|
|
type CreateFolderOptions = api.CreateFolderV1Request
|
|
type DeleteFolderOptions = api.DeleteFolderV1Request
|
|
|
|
type FoldersInterface interface {
|
|
List(options ListFoldersOptions) ([]models.Folder, error)
|
|
Update(options UpdateFolderOptions) (models.Folder, error)
|
|
Create(options CreateFolderOptions) (models.Folder, error)
|
|
Delete(options DeleteFolderOptions) (models.Folder, error)
|
|
}
|
|
|
|
type Folders struct {
|
|
client *InfisicalClient
|
|
}
|
|
|
|
func (f *Folders) List(options ListFoldersOptions) ([]models.Folder, error) {
|
|
res, err := api.CallListFoldersV1(f.client.httpClient, options)
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return res.Folders, nil
|
|
}
|
|
|
|
func (f *Folders) Update(options UpdateFolderOptions) (models.Folder, error) {
|
|
res, err := api.CallUpdateFolderV1(f.client.httpClient, options)
|
|
|
|
if err != nil {
|
|
return models.Folder{}, err
|
|
}
|
|
|
|
return res.Folder, nil
|
|
}
|
|
|
|
func (f *Folders) Create(options CreateFolderOptions) (models.Folder, error) {
|
|
res, err := api.CallCreateFolderV1(f.client.httpClient, options)
|
|
|
|
if err != nil {
|
|
return models.Folder{}, err
|
|
}
|
|
|
|
return res.Folder, nil
|
|
}
|
|
|
|
func (f *Folders) Delete(options DeleteFolderOptions) (models.Folder, error) {
|
|
res, err := api.CallDeleteFolderV1(f.client.httpClient, options)
|
|
|
|
if err != nil {
|
|
return models.Folder{}, err
|
|
}
|
|
|
|
return res.Folder, nil
|
|
}
|
|
|
|
func NewFolders(client *InfisicalClient) FoldersInterface {
|
|
return &Folders{client: client}
|
|
}
|