R/proxy-keyring.R

Defines functions proxy_keyring

himitsu_proxy_keyring <- R6::R6Class(
  classname = "himitsu_proxy_keyring",
  inherit = himitsu_proxy,
  cloneable = FALSE,

  private = list(
    service = NULL,
    username = NULL,
    keyring = NULL,

    read_ = function() {
      keyring::key_get(
        service = private$service,
        username = private$username,
        keyring = private$keyring
      )
    },

    write_ = function(value) {
      keyring::key_set_with_value(
        service = private$service,
        username = private$username,
        password = value,
        keyring = private$keyring
      )
    }
  ),

  public = list(
    initialize = function(service, username = NULL, keyring = NULL) {
      private$service <- service
      private$username <- username
      private$keyring <- keyring
    }
  )
)

#' @export
proxy_keyring <- function(service, username = NULL, keyring = NULL) {
  himitsu_proxy_keyring$new(service, username, keyring)
}
shunsambongi/himitsu documentation built on April 23, 2020, 12:46 a.m.