annotate aquainfra_ogc_api_processes.R @ 9:7b003d6604f8 draft default tip

planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit b3d67b03e9bde6f6b1e2a48b8d5664129d3c57d5
author ecology
date Mon, 18 Aug 2025 10:12:19 +0000
parents aec309f44d47
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
1 library("httr2")
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
2 library("jsonlite")
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
3 library("getopt")
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
4
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
5 cat("START GENERIC WRAPPER SERVICE \n")
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
6
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
7 remove_null_values <- function(x) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
8 if (is.list(x)) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
9 x <- lapply(x, remove_null_values)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
10 x <- x[!sapply(x, is.null)]
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
11 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
12 return(x)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
13 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
14
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
15 getParameters <- function() {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
16 con <- file("inputs.json", "r")
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
17 lines <- readLines(con)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
18 close(con)
1
84557c0b3eef planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 3989415663771a85b3a0be6c02308994ac4adc85
ecology
parents: 0
diff changeset
19
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
20 json_string <- paste(lines, collapse = "\n")
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
21 json_data <- fromJSON(json_string)
1
84557c0b3eef planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 3989415663771a85b3a0be6c02308994ac4adc85
ecology
parents: 0
diff changeset
22
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
23 cleaned_json_data <- remove_null_values(json_data)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
24 return(cleaned_json_data$conditional_process)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
25 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
26
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
27 parseResponseBody <- function(body) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
28 hex <- c(body)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
29 intValues <- as.integer(hex)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
30 rawVector <- as.raw(intValues)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
31 readableOutput <- rawToChar(rawVector)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
32 jsonObject <- jsonlite::fromJSON(readableOutput)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
33 return(jsonObject)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
34 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
35
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
36 executeProcess <- function(url, process, requestBodyData) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
37 url <-
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
38 paste(paste(paste(url, "processes/", sep = ""), process, sep = ""), "/execution", sep = "")
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
39 requestBodyData$inputs$select_process <- NULL
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
40
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
41 body <- list()
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
42 body$inputs <- requestBodyData$inputs
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
43
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
44 response <- request(url) %>%
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
45 req_headers("Content-Type" = "application/json",
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
46 "Prefer" = "respond-async") %>%
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
47 req_body_json(body) %>%
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
48 req_perform()
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
49
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
50 cat("\n 3.1: Process executed")
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
51 cat("\n 3.1: Status code: ", response$status_code)
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
52 jobId <- parseResponseBody(response$body)$jobID
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
53 cat("\n 3.1: Job ID: ", jobId, "\n")
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
54
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
55 return(jobId)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
56 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
57
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
58 checkJobStatus <- function(server, process, jobID) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
59 url <- paste0(server, "jobs/", jobID)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
60 response <- request(url) %>%
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
61 req_perform()
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
62 jobStatus <- parseResponseBody(response$body)$status
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
63 jobProgress <- parseResponseBody(response$body)$progress
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
64 return(jobStatus)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
65 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
66
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
67 getStatusCode <- function(url) {
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
68 response <- request(url) %>%
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
69 req_perform()
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
70 status_code <- response$status_code
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
71 return(status_code)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
72 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
73
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
74 getResult <- function (server, process, jobID) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
75 response <-
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
76 request(paste0(server, "jobs/", jobID, "/results?f=json")) %>%
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
77 req_perform()
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
78 return(response)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
79 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
80
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
81 findHref <- function(obj) {
1
84557c0b3eef planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 3989415663771a85b3a0be6c02308994ac4adc85
ecology
parents: 0
diff changeset
82 hrefs <- c()
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
83 if (is.list(obj)) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
84 for (name in names(obj)) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
85 element <- obj[[name]]
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
86 if (is.list(element)) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
87 hrefs <- c(hrefs, findHref(element))
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
88 } else if (name == "href") {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
89 hrefs <- c(hrefs, element)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
90 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
91 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
92 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
93 return(hrefs)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
94 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
95
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
96 retrieveResults <- function(server, process, jobID, outputData) {
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
97 url <- paste0(server, "jobs/", jobID)
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
98 cat(" 4.1: Job URL: ", url)
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
99 status_code <- getStatusCode(url)
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
100 cat("\n 4.2: Status code: ", status_code, "\n")
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
101
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
102 if (status_code == 200) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
103 status <- "running"
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
104
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
105 while (status == "running") {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
106 jobStatus <- checkJobStatus(server, process, jobID)
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
107 cat(" 4.3: Job status: ", jobStatus, "\n")
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
108
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
109 if (jobStatus == "successful") {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
110 status <- jobStatus
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
111 result <- getResult(server, process, jobID)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
112
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
113 if (result$status_code == 200) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
114 resultBody <- parseResponseBody(result$body)
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
115 cat("\n 4.4 Outputs: \n")
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
116 print(resultBody)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
117 hrefs <- findHref(resultBody)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
118
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
119 if (length(hrefs) > 0) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
120 urls_with_newline <- paste(hrefs, collapse = "\n")
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
121 con <- file(outputData, "w")
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
122 writeLines(urls_with_newline, con = con)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
123 close(con)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
124 } else {
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
125 stop(paste0("Job failed. No hrefs found. See details at: ", server, "jobs/", jobID))
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
126 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
127 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
128 } else if (jobStatus == "failed") {
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
129 stop(paste0("Job failed. See details at: ", server, "jobs/", jobID))
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
130 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
131 Sys.sleep(3)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
132 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
133
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
134 } else if (status_code1 == 400) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
135 print("A query parameter has an invalid value.")
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
136 } else if (status_code1 == 404) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
137 print("The requested URI was not found.")
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
138 } else if (status_code1 == 500) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
139 print("The requested URI was not found.")
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
140 } else {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
141 print(paste("HTTP", status_code1, "Error:", resp1$status_message))
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
142 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
143 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
144
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
145 saveResult <- function(href, outputData) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
146 con <- file(outputData, "w")
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
147 writeLines(href, con = con)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
148 close(con)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
149 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
150
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
151 is_url <- function(x) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
152 grepl("^https?://", x)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
153 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
154
2
e1f41a25ff24 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 22bb5ef944236a3e6c5d4e9ffb31e99b700031e6
ecology
parents: 1
diff changeset
155 server <- "https://aquainfra.ogc.igb-berlin.de/pygeoapi/"
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
156
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
157 cat("\n1: START RETRIEVING PARAMETERS\n\n")
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
158 inputParameters <- getParameters()
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
159 print(inputParameters)
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
160 cat("1: END RETRIEVING PARAMETERS\n")
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
161
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
162 args <- commandArgs(trailingOnly = TRUE)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
163 outputLocation <- args[2]
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
164
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
165 cat("\n2: START PARSING INPUTS\n\n")
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
166 convertedKeys <- c()
1
84557c0b3eef planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 3989415663771a85b3a0be6c02308994ac4adc85
ecology
parents: 0
diff changeset
167
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
168 for (key in names(inputParameters)) {
8
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
169 value_no_spaces <- gsub(" ", "", inputParameters[[key]])
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
170 if (value_no_spaces == "") {
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
171 inputParameters[[key]] <- NULL
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
172 }
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
173
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
174 if (is.character(inputParameters[[key]]) &&
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
175 (endsWith(inputParameters[[key]], ".dat") ||
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
176 endsWith(inputParameters[[key]], ".txt"))) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
177 con <- file(inputParameters[[key]], "r")
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
178 url_list <- list()
1
84557c0b3eef planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 3989415663771a85b3a0be6c02308994ac4adc85
ecology
parents: 0
diff changeset
179
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
180 con <- file(inputParameters[[key]], "r")
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
181 lines <- readLines(con)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
182 close(con)
1
84557c0b3eef planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 3989415663771a85b3a0be6c02308994ac4adc85
ecology
parents: 0
diff changeset
183
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
184 json_string <- paste(lines, collapse = ",")
1
84557c0b3eef planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 3989415663771a85b3a0be6c02308994ac4adc85
ecology
parents: 0
diff changeset
185 inputParameters[[key]] <- json_string
84557c0b3eef planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 3989415663771a85b3a0be6c02308994ac4adc85
ecology
parents: 0
diff changeset
186
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
187 convertedKeys <- append(convertedKeys, key)
8
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
188 } else if (
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
189 grepl("_object", key) &&
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
190 !is.null(inputParameters[[key]]) &&
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
191 !is.na(inputParameters[[key]]) &&
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
192 gsub(" ", "", inputParameters[[key]]) != ""
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
193 ) {
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
194 decoded_value <- gsub("__oc__", "{", inputParameters[[key]])
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
195 decoded_value <- gsub("__cc__", "}", decoded_value)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
196 decoded_value <- gsub("__ob__", "[", decoded_value)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
197 decoded_value <- gsub("__cb__", "]", decoded_value)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
198 decoded_value <- gsub("__dq__", "\"", decoded_value) # Optional: sometimes used for quotes
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
199 decoded_value <- gsub("__cn__", ":", decoded_value) # Optional: used for colon in older versions
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
200
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
201 parsed_json <- fromJSON(decoded_value)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
202 convertedKey <- gsub("_object", "", key)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
203 convertedKeys <- append(convertedKeys, convertedKey)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
204 #json_string <- toJSON(parsed_json, auto_unbox = FALSE)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
205 inputParameters[[key]] <- parsed_json
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
206 } else if (grepl("_array", key)) {
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
207 keyParts <- strsplit(key, split = "_")[[1]]
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
208 type <- keyParts[length(keyParts)]
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
209 values <- inputParameters[[key]]
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
210 if (is.character(values) && grepl(",", values)) {
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
211 value_list <- unlist(strsplit(values, split = ","))
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
212 } else if (is.character(values)) {
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
213 value_list <- c(values)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
214 }
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
215
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
216 convertedValues <- c()
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
217
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
218 for (value in value_list) {
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
219 value <- as.character(value)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
220 value <- gsub(" ", "", value)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
221 #if(type == "integer") {
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
222 # value <- as.integer(value)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
223 #} else if (type == "numeric") {
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
224 # value <- as.numeric(balue)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
225 #} else if (type == "character") {
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
226 # value <- as.character(value)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
227 # value <- gsub(" ", "", value)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
228 #}
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
229 convertedValues <- append(convertedValues, value)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
230 convertedKey <- ""
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
231 for (part in keyParts) {
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
232 if(part == "array") {
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
233 break
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
234 }
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
235 convertedKey <- paste(convertedKey, paste(part, "_", sep=""), sep="")
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
236 }
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
237 convertedKey <- substr(convertedKey, 1, nchar(convertedKey)-1)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
238 }
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
239 inputParameters[[key]] <- convertedValues
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
240 convertedKeys <- append(convertedKeys, convertedKey)
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
241 }
aec309f44d47 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit d6d779f958b5d3347769bdc83c885950ae975a42
ecology
parents: 7
diff changeset
242 else {
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
243 if (!is.null(inputParameters[[key]])) {
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
244 convertedKeys <- append(convertedKeys, key)
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
245 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
246 }
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
247 }
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
248 names(inputParameters) <- convertedKeys
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
249 print(inputParameters)
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
250 cat("2: END PARSING INPUTSs\n")
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
251
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
252 cat("\n3: START EXECUTING PROCESS\n")
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
253 jsonData <- list("inputs" = inputParameters)
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
254 jobId <- executeProcess(server, inputParameters$select_process, jsonData)
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
255 cat("\n3: END EXECUTING PROCESS\n")
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
256
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
257 cat("\n4: START RETRIEVING RESULTS\n\n")
0
0117fab93b87 planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 6db8e8425f0525fc2e5df8cb43beb3b14024d0ab
ecology
parents:
diff changeset
258 retrieveResults(server, inputParameters$select_process, jobId, outputLocation)
7
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
259 cat("4: END RETRIEVING RESULTS\n")
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
260
c805cb663bac planemo upload for repository https://github.com/AquaINFRA/tools-ecology/tree/master commit 176da50f4af1ff7f4e0e325984c8edd27fe93926
ecology
parents: 2
diff changeset
261 cat("\n5: DONE.")