annotate ogc_api_processes_wrapper.R @ 2:bcb6009d5af7 draft default tip

planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit e03f4d27ec44d873aacdf406d7a26ec8038e9b05
author ecology
date Wed, 08 May 2024 21:05:47 +0000
parents f6288dd4b77a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
1 library("httr2")
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
2 library("jsonlite")
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
3 library("getopt")
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
4
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
5 cat("start generic wrapper service \n")
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
6
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
7 getParameters <- function(){
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
8 con <- file("inputs.json", "r")
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
9 line <- readLines(con, n = 1)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
10 json <- fromJSON(line)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
11 close(con)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
12 return(json$conditional_process)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
13 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
14
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
15 parseResponseBody <- function(body) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
16 hex <- c(body)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
17 intValues <- as.integer(hex)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
18 rawVector <- as.raw(intValues)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
19 readableOutput <- rawToChar(rawVector)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
20 jsonObject <- jsonlite::fromJSON(readableOutput)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
21 return(jsonObject)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
22 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
23
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
24 getOutputs <- function(inputs, output, server) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
25 url <- paste(paste(server, "/processes/", sep = ""), inputs$select_process, sep = "")
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
26 request <- request(url)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
27 response <- req_perform(request)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
28 responseBody <- parseResponseBody(response$body)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
29 outputs <- list()
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
30
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
31 for (x in 1:length(responseBody$outputs)) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
32 outputformatName <- paste(names(responseBody$outputs[x]), "_outformat", sep="")
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
33 output_item <- list()
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
34
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
35 for (p in names(inputs)) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
36 if(p == outputformatName){
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
37 format <- list("mediaType" = inputs[[outputformatName]])
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
38 output_item$format <- format
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
39 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
40 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
41 output_item$transmissionMode <- "reference"
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
42 outputs[[x]] <- output_item
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
43 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
44
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
45 names(outputs) <- names(responseBody$outputs)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
46 return(outputs)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
47 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
48
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
49 executeProcess <- function(url, process, requestBodyData, output) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
50 url <- paste(paste(paste(url, "processes/", sep = ""), process, sep = ""), "/execution", sep = "")
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
51 response <- request(url) %>%
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
52 req_headers(
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
53 "accept" = "/*",
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
54 "Prefer" = "respond-async;return=representation",
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
55 "Content-Type" = "application/json"
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
56 ) %>%
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
57 req_body_json(requestBodyData) %>%
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
58 req_perform()
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
59
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
60 cat("\n Process executed")
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
61 cat("\n status: ", response$status_code)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
62 cat("\n jobID: ", parseResponseBody(response$body)$jobID, "\n")
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
63
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
64 jobID <- parseResponseBody(response$body)$jobID
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
65
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
66 return(jobID)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
67 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
68
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
69 checkJobStatus <- function(server, jobID) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
70 response <- request(paste0(server, "jobs/", jobID)) %>%
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
71 req_headers(
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
72 'accept' = 'application/json'
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
73 ) %>%
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
74 req_perform()
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
75 jobStatus <- parseResponseBody(response$body)$status
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
76 jobProgress <- parseResponseBody(response$body)$progress
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
77 cat(paste0("\n status: ", jobStatus, ", progress: ", jobProgress))
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
78 return(jobStatus)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
79 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
80
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
81 getStatusCode <- function(server, jobID) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
82 url <- paste0(server, "jobs/", jobID)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
83 response <- request(url) %>%
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
84 req_headers(
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
85 'accept' = 'application/json'
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
86 ) %>%
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
87 req_perform()
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
88 return(response$status_code)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
89 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
90
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
91 getResult <- function (server, jobID) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
92 response <- request(paste0(server, "jobs/", jobID, "/results")) %>%
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
93 req_headers(
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
94 'accept' = 'application/json'
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
95 ) %>%
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
96 req_perform()
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
97 return(response)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
98 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
99
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
100 retrieveResults <- function(server, jobID, outputData) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
101 status_code <- getStatusCode(server, jobID)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
102 if(status_code == 200){
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
103 status <- "running"
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
104 cat(status)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
105 while(status == "running"){
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
106 jobStatus <- checkJobStatus(server, jobID)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
107 if (jobStatus == "successful") {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
108 status <- jobStatus
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
109 result <- getResult(server, jobID)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
110 if (result$status_code == 200) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
111 resultBody <- parseResponseBody(result$body)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
112 urls <- unname(unlist(lapply(resultBody, function(x) x$href)))
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
113 urls_with_newline <- paste(urls, collapse = "\n")
2
bcb6009d5af7 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit e03f4d27ec44d873aacdf406d7a26ec8038e9b05
ecology
parents: 0
diff changeset
114 con <- file(outputData, "w")
bcb6009d5af7 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit e03f4d27ec44d873aacdf406d7a26ec8038e9b05
ecology
parents: 0
diff changeset
115 writeLines(urls_with_newline, con = con)
bcb6009d5af7 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit e03f4d27ec44d873aacdf406d7a26ec8038e9b05
ecology
parents: 0
diff changeset
116 close(con)
0
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
117 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
118 } else if (jobStatus == "failed") {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
119 status <- jobStatus
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
120 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
121 Sys.sleep(3)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
122 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
123 cat("\n done \n")
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
124 } else if (status_code1 == 400) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
125 print("A query parameter has an invalid value.")
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
126 } else if (status_code1 == 404) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
127 print("The requested URI was not found.")
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
128 } else if (status_code1 == 500) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
129 print("The requested URI was not found.")
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
130 } else {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
131 print(paste("HTTP", status_code1, "Error:", resp1$status_message))
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
132 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
133 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
134
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
135 is_url <- function(x) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
136 grepl("^https?://", x)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
137 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
138
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
139 server <- "https://ospd.geolabs.fr:8300/ogc-api/"
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
140
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
141 inputParameters <- getParameters()
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
142
2
bcb6009d5af7 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit e03f4d27ec44d873aacdf406d7a26ec8038e9b05
ecology
parents: 0
diff changeset
143 args <- commandArgs(trailingOnly = TRUE)
bcb6009d5af7 planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit e03f4d27ec44d873aacdf406d7a26ec8038e9b05
ecology
parents: 0
diff changeset
144 outputLocation <- args[2]
0
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
145
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
146 outputs <- getOutputs(inputParameters, outputLocation, server)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
147
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
148 for (key in names(inputParameters)) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
149 print(inputParameters[[key]])
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
150 if (is.character(inputParameters[[key]]) && (endsWith(inputParameters[[key]], ".dat") || endsWith(inputParameters[[key]], ".txt"))) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
151 con <- file(inputParameters[[key]], "r")
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
152 url_list <- list()
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
153 while (length(line <- readLines(con, n = 1)) > 0) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
154 if (is_url(line)) {
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
155 url_list <- c(url_list, list(list(href = trimws(line))))
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
156 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
157 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
158 close(con)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
159 inputParameters[[key]] <- url_list
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
160 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
161 }
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
162
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
163 jsonData <- list(
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
164 "inputs" = inputParameters,
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
165 "outputs" = outputs
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
166 )
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
167
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
168 jobID <- executeProcess(server, inputParameters$select_process, jsonData, outputLocation)
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
169
f6288dd4b77a planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/ogc_api_processes_wrapper commit 4089d69de9c54df0930f55572e95bf3d22bf5e70
ecology
parents:
diff changeset
170 retrieveResults(server, jobID, outputLocation)