/**
= Creative Commons Lizenzvertrag =
Diese Software ist von der archium GmbH, Gera ist lizenziert unter einer Creative Commons Namensnennung - Nicht kommerziell - Keine Bearbeitungen 4.0 International Lizenz. (http://creativecommons.org/licenses/by-nc-nd/4.0/deed.de)
Individuelle über diese Lizenz hinausgehende Berechtigungen können Sie unter https://archium.org erhalten.

= Creative Commons License =
Software by archium GmbH, Gera is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. (http://creativecommons.org/licenses/by-nc-nd/4.0/)
Individual permissions beyond the scope of this license may be available at https://archium.org.
**/

package files

import (
	con "Toolbox/goDataverse/connect"
	tol "Toolbox/goDataverse/tools"
	"errors"
	"fmt"
	"strings"

	gjs "github.com/tidwall/gjson"
)

func GetFilesByDatasetId(_dp tol.TDVParams, _datasetid, _version string,
	_citation gjs.Result) (string, error) {
	if len(_datasetid) == 0 {
		return "", errors.New("No datasetId found.")
	}
	var datasetid string = _datasetid
	var version string = _version
	var url string = tol.GetSiteUrl(_dp) + "/api/datasets/" + datasetid + "/%versions%/files"
	if len(version) > 0 {
		version = "versions/" + version
	} else {
		if len(_dp.DP_datasetVersion) > 0 {
			version = "versions/" + _dp.DP_datasetVersion
		} else {
			version = "versions/:latest"
		}
	}

	url = strings.Replace(url, "%versions%", version, -1)

	//fmt.Println("URL-files:", url)
	res, err := con.GetRequest(url, map[string]string{},
		map[string]string{"X-Dataverse-key": tol.GetApiKey(_dp)})
	//
	return (fmt.Sprintf("%s", res)), err
}
