Blame internal/client/source.go

Packit 63bb0d
// Package client - source contains functions for the source 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/weldr"
Packit 63bb0d
)
Packit 63bb0d
Packit 63bb0d
// ListSourcesV0 returns a list of source names
Packit 63bb0d
func ListSourcesV0(socket *http.Client) ([]string, *APIResponse, error) {
Packit 63bb0d
	body, resp, err := GetRaw(socket, "GET", "/api/v0/projects/source/list")
Packit 63bb0d
	if resp != nil || err != nil {
Packit 63bb0d
		return nil, resp, err
Packit 63bb0d
	}
Packit 63bb0d
	var list weldr.SourceListV0
Packit 63bb0d
	err = json.Unmarshal(body, &list)
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		return nil, nil, err
Packit 63bb0d
	}
Packit 63bb0d
	return list.Sources, nil, nil
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
// ListSourcesV1 returns a list of source ids
Packit 63bb0d
func ListSourcesV1(socket *http.Client) ([]string, *APIResponse, error) {
Packit 63bb0d
	body, resp, err := GetRaw(socket, "GET", "/api/v1/projects/source/list")
Packit 63bb0d
	if resp != nil || err != nil {
Packit 63bb0d
		return nil, resp, err
Packit 63bb0d
	}
Packit 63bb0d
	var list weldr.SourceListV1
Packit 63bb0d
	err = json.Unmarshal(body, &list)
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		return nil, nil, err
Packit 63bb0d
	}
Packit 63bb0d
	return list.Sources, nil, nil
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
// GetSourceInfoV0 returns detailed information on the named sources
Packit 63bb0d
func GetSourceInfoV0(socket *http.Client, sourceNames string) (map[string]weldr.SourceConfigV0, *APIResponse, error) {
Packit 63bb0d
	body, resp, err := GetRaw(socket, "GET", "/api/v0/projects/source/info/"+sourceNames)
Packit 63bb0d
	if resp != nil || err != nil {
Packit 63bb0d
		return nil, resp, err
Packit 63bb0d
	}
Packit 63bb0d
	var info weldr.SourceInfoResponseV0
Packit 63bb0d
	err = json.Unmarshal(body, &info)
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		return nil, nil, err
Packit 63bb0d
	}
Packit 63bb0d
	return info.Sources, nil, nil
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
// GetSourceInfoV1 returns detailed information on the named sources
Packit 63bb0d
func GetSourceInfoV1(socket *http.Client, sourceNames string) (map[string]weldr.SourceConfigV1, *APIResponse, error) {
Packit 63bb0d
	body, resp, err := GetRaw(socket, "GET", "/api/v1/projects/source/info/"+sourceNames)
Packit 63bb0d
	if resp != nil || err != nil {
Packit 63bb0d
		return nil, resp, err
Packit 63bb0d
	}
Packit 63bb0d
	var info weldr.SourceInfoResponseV1
Packit 63bb0d
	err = json.Unmarshal(body, &info)
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		return nil, nil, err
Packit 63bb0d
	}
Packit 63bb0d
	return info.Sources, nil, nil
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
// PostJSONSourceV0 sends a JSON source string to the API
Packit 63bb0d
// and returns an APIResponse
Packit 63bb0d
func PostJSONSourceV0(socket *http.Client, source string) (*APIResponse, error) {
Packit 63bb0d
	body, resp, err := PostJSON(socket, "/api/v0/projects/source/new", source)
Packit 63bb0d
	if resp != nil || err != nil {
Packit 63bb0d
		return resp, err
Packit 63bb0d
	}
Packit 63bb0d
	return NewAPIResponse(body)
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
// PostJSONSourceV1 sends a JSON source string to the API
Packit 63bb0d
// and returns an APIResponse
Packit 63bb0d
func PostJSONSourceV1(socket *http.Client, source string) (*APIResponse, error) {
Packit 63bb0d
	body, resp, err := PostJSON(socket, "/api/v1/projects/source/new", source)
Packit 63bb0d
	if resp != nil || err != nil {
Packit 63bb0d
		return resp, err
Packit 63bb0d
	}
Packit 63bb0d
	return NewAPIResponse(body)
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
// PostTOMLSourceV0 sends a TOML source string to the API
Packit 63bb0d
// and returns an APIResponse
Packit 63bb0d
func PostTOMLSourceV0(socket *http.Client, source string) (*APIResponse, error) {
Packit 63bb0d
	body, resp, err := PostTOML(socket, "/api/v0/projects/source/new", source)
Packit 63bb0d
	if resp != nil || err != nil {
Packit 63bb0d
		return resp, err
Packit 63bb0d
	}
Packit 63bb0d
	return NewAPIResponse(body)
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
// PostTOMLSourceV1 sends a TOML source string to the API
Packit 63bb0d
// and returns an APIResponse
Packit 63bb0d
func PostTOMLSourceV1(socket *http.Client, source string) (*APIResponse, error) {
Packit 63bb0d
	body, resp, err := PostTOML(socket, "/api/v1/projects/source/new", source)
Packit 63bb0d
	if resp != nil || err != nil {
Packit 63bb0d
		return resp, err
Packit 63bb0d
	}
Packit 63bb0d
	return NewAPIResponse(body)
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
// DeleteSourceV0 deletes the named source and returns an APIResponse
Packit 63bb0d
func DeleteSourceV0(socket *http.Client, sourceName string) (*APIResponse, error) {
Packit 63bb0d
	body, resp, err := DeleteRaw(socket, "/api/v0/projects/source/delete/"+sourceName)
Packit 63bb0d
	if resp != nil || err != nil {
Packit 63bb0d
		return resp, err
Packit 63bb0d
	}
Packit 63bb0d
	return NewAPIResponse(body)
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
// DeleteSourceV1 deletes the named source and returns an APIResponse
Packit 63bb0d
func DeleteSourceV1(socket *http.Client, sourceName string) (*APIResponse, error) {
Packit 63bb0d
	body, resp, err := DeleteRaw(socket, "/api/v1/projects/source/delete/"+sourceName)
Packit 63bb0d
	if resp != nil || err != nil {
Packit 63bb0d
		return resp, err
Packit 63bb0d
	}
Packit 63bb0d
	return NewAPIResponse(body)
Packit 63bb0d
}