Skip to content

Fix for portfolio-report.net #12

@dirkhe

Description

@dirkhe

Hi I wanted to call the data from portfolio-report.net with you javascript. But they changed the api.
I added a fixed fixed version, but I had to hard coded the currency to EUR.

var ArrayList = java.util.ArrayList;
var Logger = Packages.de.willuhn.logging.Logger;

var fetcher; 
var webClient;


var s,y1,m1,d1,y2,m2,d2;

function getAPIVersion() {
	return "1";
};

function getVersion() {
	return "2024-02-25";
};

function getName() {
	return "PortfolioReport";
};

function getURL() {
	return "https://www.portfolio-report.net/";
};



function prepare(fetch, search, startyear, startmon, startday, stopyear, stopmon, stopday) {
	Logger.info("prepare...");
	fetcher = fetch;
	s = search;
	y1 = startyear; m1 = startmon; d1 = startday;
	y2 = stopyear; m2 = stopmon; d2 = stopday;
    return new ArrayList();
}

function process(config) {
	Logger.info("process...");
	var webClient = fetcher.getWebClient(false); 

	var page = webClient.getPage("https://api.portfolio-report.net/v1/securities/search?q=" + s);
	var json = JSON.parse(page.getWebResponse().getContentAsString());
	var uuid = json[0]["uuid"];

	var startDate = new Date(y1, m1, d1);
	var currency = "EUR";

	var start = startDate.toISOString().substring(0, 10);
	//page = webClient.getPage("https://api.portfolio-report.net/securities/uuid/" + uuid + "/markets/XETR?from=" + start);
	page = webClient.getPage("https://api.portfolio-report.net/securities/uuid/" + uuid + "/prices/" + currency + "?from=" + start);
	var jsondata = page.getWebResponse().getContentAsString();

	var data = JSON.parse(jsondata);

	var res = new ArrayList();
	for (var i = 0; i < data.length; i++) {
		var price = data[i];
		var dc = new Packages.jsq.datastructes.Datacontainer();
		dc.put("currency", currency);
		dc.put("date", Packages.jsq.tools.VarTools.parseDate(price["date"], "yyyy-MM-dd"));
		dc.put("last", Packages.jsq.tools.VarTools.stringToBigDecimal(price["close"]));
		
		//dc.put("first", Packages.jsq.tools.VarTools.stringToBigDecimal(record.get("Open")));
		//dc.put("last", Packages.jsq.tools.VarTools.stringToBigDecimal(price["close"]));
		//dc.put("low", Packages.jsq.tools.VarTools.stringToBigDecimal(record.get("Low")));
		//dc.put("high", Packages.jsq.tools.VarTools.stringToBigDecimal(record.get("High")));
		//dc.put("currency", defaultcur);
		res.add(dc);
	}
	fetcher.setHistQuotes(res);
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions