Blame internal/client/projects.go

Packit 63bb0d
// Package client - projects contains functions for the projects API
Packit 63bb0d
// Copyright (C) 2020 by Red Hat, Inc.
Packit 63bb0d
package client
Packit 63bb0d
Packit 63bb0d
import (
Packit 63bb0d
	"encoding/json"
Packit 63bb0d
	"fmt"
Packit 63bb0d
	"net/http"
Packit 63bb0d
	//	"strings"
Packit 63bb0d
Packit 63bb0d
	"github.com/osbuild/osbuild-composer/internal/rpmmd"
Packit 63bb0d
	"github.com/osbuild/osbuild-composer/internal/weldr"
Packit 63bb0d
)
Packit 63bb0d
Packit 63bb0d
// ListAllProjectsV0 returns a list of all the available project names
Packit 63bb0d
func ListAllProjectsV0(socket *http.Client) ([]rpmmd.PackageInfo, *APIResponse, error) {
Packit 63bb0d
	body, resp, err := GetJSONAll(socket, "/api/v0/projects/list")
Packit 63bb0d
	if resp != nil || err != nil {
Packit 63bb0d
		return nil, resp, err
Packit 63bb0d
	}
Packit 63bb0d
	var list weldr.ProjectsListV0
Packit 63bb0d
	err = json.Unmarshal(body, &list)
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		return nil, nil, err
Packit 63bb0d
	}
Packit 63bb0d
	return list.Projects, nil, nil
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
// ListSomeProjectsV0 returns a list of all the available project names
Packit 63bb0d
func ListSomeProjectsV0(socket *http.Client, offset, limit int) ([]rpmmd.PackageInfo, *APIResponse, error) {
Packit 63bb0d
	path := fmt.Sprintf("/api/v0/projects/list?offset=%d&limit=%d", offset, limit)
Packit 63bb0d
	body, resp, err := GetRaw(socket, "GET", path)
Packit 63bb0d
	if resp != nil || err != nil {
Packit 63bb0d
		return nil, resp, err
Packit 63bb0d
	}
Packit 63bb0d
	var list weldr.ProjectsListV0
Packit 63bb0d
	err = json.Unmarshal(body, &list)
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		return nil, nil, err
Packit 63bb0d
	}
Packit 63bb0d
	return list.Projects, nil, nil
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
// GetProjectsInfoV0 returns detailed project info on the named projects
Packit 63bb0d
func GetProjectsInfoV0(socket *http.Client, projNames string) ([]rpmmd.PackageInfo, *APIResponse, error) {
Packit 63bb0d
	body, resp, err := GetRaw(socket, "GET", "/api/v0/projects/info/"+projNames)
Packit 63bb0d
	if resp != nil || err != nil {
Packit 63bb0d
		return nil, resp, err
Packit 63bb0d
	}
Packit 63bb0d
	var list weldr.ProjectsInfoV0
Packit 63bb0d
	err = json.Unmarshal(body, &list)
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		return nil, nil, err
Packit 63bb0d
	}
Packit 63bb0d
	return list.Projects, nil, nil
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
//DepsolveProjectsV0 returns the dependencies of the names projects
Packit 63bb0d
func DepsolveProjectsV0(socket *http.Client, projNames string) ([]rpmmd.PackageSpec, *APIResponse, error) {
Packit 63bb0d
	body, resp, err := GetRaw(socket, "GET", "/api/v0/projects/depsolve/"+projNames)
Packit 63bb0d
	if resp != nil || err != nil {
Packit 63bb0d
		return nil, resp, err
Packit 63bb0d
	}
Packit 63bb0d
	var deps weldr.ProjectsDependenciesV0
Packit 63bb0d
	err = json.Unmarshal(body, &deps)
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		return nil, nil, err
Packit 63bb0d
	}
Packit 63bb0d
	return deps.Projects, nil, nil
Packit 63bb0d
}