golift.io/starr@v1.0.0/lidarr/system.go (about) 1 package lidarr 2 3 import ( 4 "context" 5 "fmt" 6 "path" 7 "time" 8 9 "golift.io/starr" 10 ) 11 12 const bpSystem = APIver + "/system" 13 14 // SystemStatus is the /api/v1/system/status endpoint. 15 type SystemStatus struct { 16 AppData string `json:"appData"` 17 AppName string `json:"appName"` 18 Authentication string `json:"authentication"` 19 Branch string `json:"branch"` 20 BuildTime time.Time `json:"buildTime"` 21 InstanceName string `json:"instanceName"` 22 IsAdmin bool `json:"isAdmin"` 23 IsDebug bool `json:"isDebug"` 24 IsDocker bool `json:"isDocker"` 25 IsLinux bool `json:"isLinux"` 26 IsNetCore bool `json:"isNetCore"` 27 IsOsx bool `json:"isOsx"` 28 IsProduction bool `json:"isProduction"` 29 IsUserInteractive bool `json:"isUserInteractive"` 30 IsWindows bool `json:"isWindows"` 31 MigrationVersion int64 `json:"migrationVersion"` 32 Mode string `json:"mode"` 33 OsName string `json:"osName"` 34 PackageAuthor string `json:"packageAuthor"` 35 PackageUpdateMechanism string `json:"packageUpdateMechanism"` 36 PackageVersion string `json:"packageVersion"` 37 RuntimeName string `json:"runtimeName"` 38 RuntimeVersion string `json:"runtimeVersion"` 39 SqliteVersion string `json:"sqliteVersion"` 40 StartTime time.Time `json:"startTime"` 41 StartupPath string `json:"startupPath"` 42 URLBase string `json:"urlBase"` 43 Version string `json:"version"` 44 } 45 46 // GetSystemStatus returns system status. 47 func (l *Lidarr) GetSystemStatus() (*SystemStatus, error) { 48 return l.GetSystemStatusContext(context.Background()) 49 } 50 51 // GetSystemStatusContext returns system status. 52 func (l *Lidarr) GetSystemStatusContext(ctx context.Context) (*SystemStatus, error) { 53 var output SystemStatus 54 55 req := starr.Request{URI: path.Join(bpSystem, "status")} 56 if err := l.GetInto(ctx, req, &output); err != nil { 57 return nil, fmt.Errorf("api.Get(%s): %w", &req, err) 58 } 59 60 return &output, nil 61 } 62 63 // GetBackupFiles returns all available Lidarr backup files. 64 // Use GetBody to download a file using BackupFile.Path. 65 func (l *Lidarr) GetBackupFiles() ([]*starr.BackupFile, error) { 66 return l.GetBackupFilesContext(context.Background()) 67 } 68 69 // GetBackupFilesContext returns all available Lidarr backup files. 70 // Use GetBody to download a file using BackupFile.Path. 71 func (l *Lidarr) GetBackupFilesContext(ctx context.Context) ([]*starr.BackupFile, error) { 72 var output []*starr.BackupFile 73 74 req := starr.Request{URI: path.Join(bpSystem, "backup")} 75 if err := l.GetInto(ctx, req, &output); err != nil { 76 return nil, fmt.Errorf("api.Get(%s): %w", &req, err) 77 } 78 79 return output, nil 80 }