Blame internal/client/modules.go

Packit Service 4d2de5
// Package client - modules contains functions for the modules API
Packit Service 4d2de5
// Copyright (C) 2020 by Red Hat, Inc.
Packit Service 4d2de5
package client
Packit Service 4d2de5
Packit Service 4d2de5
import (
Packit Service 4d2de5
	"encoding/json"
Packit Service 4d2de5
	"fmt"
Packit Service 4d2de5
	"net/http"
Packit Service 4d2de5
	//	"strings"
Packit Service 4d2de5
Packit Service 4d2de5
	"github.com/osbuild/osbuild-composer/internal/rpmmd"
Packit Service 4d2de5
	"github.com/osbuild/osbuild-composer/internal/weldr"
Packit Service 4d2de5
)
Packit Service 4d2de5
Packit Service 4d2de5
// ListAllModulesV0 returns a list of all the available module names
Packit Service 4d2de5
func ListAllModulesV0(socket *http.Client) ([]weldr.ModuleName, *APIResponse, error) {
Packit Service 4d2de5
	body, resp, err := GetJSONAll(socket, "/api/v0/modules/list")
Packit Service 4d2de5
	if resp != nil || err != nil {
Packit Service 4d2de5
		return nil, resp, err
Packit Service 4d2de5
	}
Packit Service 4d2de5
	var list weldr.ModulesListV0
Packit Service 4d2de5
	err = json.Unmarshal(body, &list)
Packit Service 4d2de5
	if err != nil {
Packit Service 4d2de5
		return nil, nil, err
Packit Service 4d2de5
	}
Packit Service 4d2de5
	return list.Modules, nil, nil
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
// ListSomeModulesV0 returns a list of all the available modules names
Packit Service 4d2de5
func ListSomeModulesV0(socket *http.Client, offset, limit int) ([]weldr.ModuleName, *APIResponse, error) {
Packit Service 4d2de5
	path := fmt.Sprintf("/api/v0/modules/list?offset=%d&limit=%d", offset, limit)
Packit Service 4d2de5
	body, resp, err := GetRaw(socket, "GET", path)
Packit Service 4d2de5
	if resp != nil || err != nil {
Packit Service 4d2de5
		return nil, resp, err
Packit Service 4d2de5
	}
Packit Service 4d2de5
	var list weldr.ModulesListV0
Packit Service 4d2de5
	err = json.Unmarshal(body, &list)
Packit Service 4d2de5
	if err != nil {
Packit Service 4d2de5
		return nil, nil, err
Packit Service 4d2de5
	}
Packit Service 4d2de5
	return list.Modules, nil, nil
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
// ListModulesV0 returns a list of all the available modules names
Packit Service 4d2de5
func ListModulesV0(socket *http.Client, moduleNames string) ([]weldr.ModuleName, *APIResponse, error) {
Packit Service 4d2de5
	body, resp, err := GetRaw(socket, "GET", "/api/v0/modules/list/"+moduleNames)
Packit Service 4d2de5
	if resp != nil || err != nil {
Packit Service 4d2de5
		return nil, resp, err
Packit Service 4d2de5
	}
Packit Service 4d2de5
	var list weldr.ModulesListV0
Packit Service 4d2de5
	err = json.Unmarshal(body, &list)
Packit Service 4d2de5
	if err != nil {
Packit Service 4d2de5
		return nil, nil, err
Packit Service 4d2de5
	}
Packit Service 4d2de5
	return list.Modules, nil, nil
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
// GetModulesInfoV0 returns detailed module info on the named modules
Packit Service 4d2de5
func GetModulesInfoV0(socket *http.Client, modulesNames string) ([]rpmmd.PackageInfo, *APIResponse, error) {
Packit Service 4d2de5
	body, resp, err := GetRaw(socket, "GET", "/api/v0/modules/info/"+modulesNames)
Packit Service 4d2de5
	if resp != nil || err != nil {
Packit Service 4d2de5
		return nil, resp, err
Packit Service 4d2de5
	}
Packit Service 4d2de5
	var list weldr.ModulesInfoV0
Packit Service 4d2de5
	err = json.Unmarshal(body, &list)
Packit Service 4d2de5
	if err != nil {
Packit Service 4d2de5
		return nil, nil, err
Packit Service 4d2de5
	}
Packit Service 4d2de5
	return list.Modules, nil, nil
Packit Service 4d2de5
}