mirror of
https://github.com/stashapp/stash.git
synced 2025-12-06 16:34:02 +01:00
* Move BackupDatabase and AnonymiseDatabase to internal/manager * Rename config.Instance to config.Config * Rename FFMPEG * Rework manager and initialization process * Fix Makefile * Tweak phasher * Fix config races * Fix setup error not clearing
77 lines
1.9 KiB
Go
77 lines
1.9 KiB
Go
package api
|
|
|
|
import (
|
|
"context"
|
|
"strconv"
|
|
|
|
"github.com/stashapp/stash/internal/manager"
|
|
"github.com/stashapp/stash/internal/manager/task"
|
|
"github.com/stashapp/stash/pkg/models"
|
|
)
|
|
|
|
func refreshPackageType(typeArg PackageType) {
|
|
mgr := manager.GetInstance()
|
|
|
|
if typeArg == PackageTypePlugin {
|
|
mgr.RefreshPluginCache()
|
|
} else if typeArg == PackageTypeScraper {
|
|
mgr.RefreshScraperCache()
|
|
}
|
|
}
|
|
|
|
func (r *mutationResolver) InstallPackages(ctx context.Context, typeArg PackageType, packages []*models.PackageSpecInput) (string, error) {
|
|
pm, err := getPackageManager(typeArg)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
mgr := manager.GetInstance()
|
|
t := &task.InstallPackagesJob{
|
|
PackagesJob: task.PackagesJob{
|
|
PackageManager: pm,
|
|
OnComplete: func() { refreshPackageType(typeArg) },
|
|
},
|
|
Packages: packages,
|
|
}
|
|
jobID := mgr.JobManager.Add(ctx, "Installing packages...", t)
|
|
|
|
return strconv.Itoa(jobID), nil
|
|
}
|
|
|
|
func (r *mutationResolver) UpdatePackages(ctx context.Context, typeArg PackageType, packages []*models.PackageSpecInput) (string, error) {
|
|
pm, err := getPackageManager(typeArg)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
mgr := manager.GetInstance()
|
|
t := &task.UpdatePackagesJob{
|
|
PackagesJob: task.PackagesJob{
|
|
PackageManager: pm,
|
|
OnComplete: func() { refreshPackageType(typeArg) },
|
|
},
|
|
Packages: packages,
|
|
}
|
|
jobID := mgr.JobManager.Add(ctx, "Updating packages...", t)
|
|
|
|
return strconv.Itoa(jobID), nil
|
|
}
|
|
|
|
func (r *mutationResolver) UninstallPackages(ctx context.Context, typeArg PackageType, packages []*models.PackageSpecInput) (string, error) {
|
|
pm, err := getPackageManager(typeArg)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
mgr := manager.GetInstance()
|
|
t := &task.UninstallPackagesJob{
|
|
PackagesJob: task.PackagesJob{
|
|
PackageManager: pm,
|
|
OnComplete: func() { refreshPackageType(typeArg) },
|
|
},
|
|
Packages: packages,
|
|
}
|
|
jobID := mgr.JobManager.Add(ctx, "Updating packages...", t)
|
|
|
|
return strconv.Itoa(jobID), nil
|
|
}
|