# sched package helper functions

Here we present some functions, that may ease the usage of the `sched` package, or serve related purposes.

## `make_post_request()`

This function facilitates the creation of `Request` object for a POST request.

Here is an example:

    my_url <- sched::URL$new("https://httpbin.org/anything")
    my_request <- sched::make_post_request(my_url,
                                           body = "{\"some_key\": \"my_value\"}",
                                           mime = "application/json")

The `Request` object can then be used inside an URL request function:

    res <- sched::get_url_request_result(my_request)
    res$getContent()
    #> [1] "{\n  \"args\": {}, \n  \"data\": \"{\\\"some_key\\\": \\\"my_value\\\"}\", \n  \"files\": {}, \n  \"form\": {}, \n  \"headers\": {\n    \"Accept\": \"application/json,multipart/*\", \n    \"Content-Length\": \"24\", \n    \"Content-Type\": \"application/json;charset=utf-8\", \n    \"Host\": \"httpbin.org\", \n    \"X-Amzn-Trace-Id\": \"Root=1-66fbf6c9-5dc0edcd6466a5822b0d48e9\"\n  }, \n  \"json\": {\n    \"some_key\": \"my_value\"\n  }, \n  \"method\": \"POST\", \n  \"origin\": \"195.83.222.29\", \n  \"url\": \"https://httpbin.org/anything\"\n}\n"

## `get_url_request_result()`

This function is a plain URL requester, that do not use the scheduling system of the package. It is presented here as a convenience.

The function takes a `sched::Request` object as input, along with standard parameters like:

- The user agent.
- A flag to enable/disable SSL verify peer. Enabled by default.
- A flag to enable/disable binary mode. Disabled by default.

Here is an example of usage:

    my_url <- sched::URL$new("https://httpbin.org/get")
    my_request <- sched::Request$new(my_url)
    sched::get_url_request_result(my_request)
    #> <RequestResult>
    #>   Public:
    #>     clone: function (deep = FALSE)
    #>     getContent: function ()
    #>     getErrMsg: function ()
    #>     getLocation: function ()
    #>     getRetry: function ()
    #>     getRetryAfter: function ()
    #>     getStatus: function ()
    #>     initialize: function (content = NULL, retry = FALSE, err_msg = NULL, status = 0,
    #>     processRequestErrors: function ()
    #>   Private:
    #>     addErrMsg: function (msg)
    #>     content: {
    #>       "args": {},
    #>       "headers": {
    #>         "Accept": "*/*",
    #>        ...
    #>     err_msg: NULL
    #>     location: NULL
    #>     retry: FALSE
    #>     retry_after: NULL
    #>     status: 200
    #>     status_msg: