giredore/domains/client/v1/packages.go

75 lines
2.0 KiB
Go

package clientv1
import (
"strings"
"go.dev.pztrn.name/giredore/internal/requester"
"go.dev.pztrn.name/giredore/internal/structs"
)
func DeletePackage(args []string, options map[string]string) {
req := &structs.PackageDeleteRequest{
OriginalPath: args[0],
}
log.Info().Str("original path", req.OriginalPath).Msg("Sending package deletion request to giredored...")
url := "http://" + options["server"] + "/_api/packages"
data, err := requester.Delete(url, req)
if err != nil {
log.Fatal().Err(err).Msg("Failed to send package deletion request to giredored")
}
log.Debug().Msg("Got data: " + string(data))
}
func GetPackages(args []string, options map[string]string) {
pkgs := strings.Split(args[0], ",")
// nolint:exhaustruct
req := &structs.PackageGetRequest{}
if pkgs[0] == "all" {
req.All = true
} else {
req.PackageNames = pkgs
}
url := "http://" + options["server"] + "/_api/packages"
log.Info().Msg("Getting packages data from giredore server...")
data, err := requester.Post(url, req)
if err != nil {
log.Fatal().Err(err).Msg("Failed to get packages data from giredore server!")
}
log.Debug().Msg("Got data: " + string(data))
}
func SetPackage(args []string, options map[string]string) {
pkg := &structs.Package{
Description: args[0],
OriginalPath: args[1],
RealPath: args[2],
VCS: args[3],
}
// Execute some necessary checks.
// If package's original path isn't starting with "/" - add it.
if !strings.HasPrefix(pkg.OriginalPath, "/") {
pkg.OriginalPath = "/" + pkg.OriginalPath
}
log.Info().Str("description", pkg.Description).Str("original path", pkg.OriginalPath).Str("real path", pkg.RealPath).Str("VCS", pkg.VCS).Msg("Sending set/update request to giredored...")
url := "http://" + options["server"] + "/_api/packages"
data, err := requester.Put(url, pkg)
if err != nil {
log.Fatal().Err(err).Msg("Failed to send package update/set request to giredored")
}
log.Debug().Msg("Got data: " + string(data))
}