Mercurial > repos > ecology > aquainfra_ogc_api_processes
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 |
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.") |