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