Files
tf_provider_immich/internal/client/system_config.go
T

78 lines
2.2 KiB
Go

package client
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
type SystemConfig struct {
Backup map[string]interface{} `json:"backup"`
FFmpeg map[string]interface{} `json:"ffmpeg"`
Logging map[string]interface{} `json:"logging"`
MachineLearning map[string]interface{} `json:"machineLearning"`
Map map[string]interface{} `json:"map"`
NewVersionCheck map[string]interface{} `json:"newVersionCheck"`
NightlyTasks map[string]interface{} `json:"nightlyTasks"`
OAuth map[string]interface{} `json:"oauth"`
PasswordLogin map[string]interface{} `json:"passwordLogin"`
ReverseGeocoding map[string]interface{} `json:"reverseGeocoding"`
Metadata map[string]interface{} `json:"metadata"`
StorageTemplate map[string]interface{} `json:"storageTemplate"`
Job map[string]interface{} `json:"job"`
Image map[string]interface{} `json:"image"`
Trash map[string]interface{} `json:"trash"`
Theme map[string]interface{} `json:"theme"`
Library map[string]interface{} `json:"library"`
Notifications map[string]interface{} `json:"notifications"`
Templates map[string]interface{} `json:"templates"`
Server map[string]interface{} `json:"server"`
User map[string]interface{} `json:"user"`
}
func (c *Client) GetSystemConfig() (*SystemConfig, error) {
req, err := http.NewRequest("GET", fmt.Sprintf("%s/system-config", c.HostURL), nil)
if err != nil {
return nil, err
}
body, err := c.doRequest(req)
if err != nil {
return nil, err
}
var config SystemConfig
err = json.Unmarshal(body, &config)
if err != nil {
return nil, err
}
return &config, nil
}
func (c *Client) UpdateSystemConfig(config SystemConfig) (*SystemConfig, error) {
rb, err := json.Marshal(config)
if err != nil {
return nil, err
}
req, err := http.NewRequest("PUT", fmt.Sprintf("%s/system-config", c.HostURL), bytes.NewBuffer(rb))
if err != nil {
return nil, err
}
body, err := c.doRequest(req)
if err != nil {
return nil, err
}
var updatedConfig SystemConfig
err = json.Unmarshal(body, &updatedConfig)
if err != nil {
return nil, err
}
return &updatedConfig, nil
}