R/Group.r

# sunagriAPI
#
# An instance of OpenSILEX WebService
#
# OpenAPI spec version: 3.3.0
# 
# Generated by: https://github.com/swagger-api/swagger-codegen.git


#' Group Class
#'
#' @field uri 
#' @field name 
#' @field level 
#' @field description 
#' @field users 
#'
#' @importFrom R6 R6Class
#' @importFrom jsonlite fromJSON toJSON
#' @export
Group <- R6::R6Class(
  'Group',
  public = list(
    `uri` = NULL,
    `name` = NULL,
    `level` = NULL,
    `description` = NULL,
    `users` = NULL,
    initialize = function(`uri`, `name`, `level`, `description`, `users`){
      if (!missing(`uri`)) {
        stopifnot(is.character(`uri`), length(`uri`) == 1)
        self$`uri` <- `uri`
      }
      if (!missing(`name`)) {
        stopifnot(is.character(`name`), length(`name`) == 1)
        self$`name` <- `name`
      }
      if (!missing(`level`)) {
        stopifnot(is.character(`level`), length(`level`) == 1)
        self$`level` <- `level`
      }
      if (!missing(`description`)) {
        stopifnot(is.character(`description`), length(`description`) == 1)
        self$`description` <- `description`
      }
      if (!missing(`users`)) {
        stopifnot(is.list(`users`), length(`users`) != 0)
        lapply(`users`, function(x) stopifnot(R6::is.R6(x)))
        self$`users` <- `users`
      }
    },
    toJSON = function() {
      GroupObject <- list()
      if (!is.null(self$`uri`)) {
        GroupObject[['uri']] <- self$`uri`
      }
      if (!is.null(self$`name`)) {
        GroupObject[['name']] <- self$`name`
      }
      if (!is.null(self$`level`)) {
        GroupObject[['level']] <- self$`level`
      }
      if (!is.null(self$`description`)) {
        GroupObject[['description']] <- self$`description`
      }
      if (!is.null(self$`users`)) {
        GroupObject[['users']] <- lapply(self$`users`, function(x) x$toJSON())
      }

      GroupObject
    },
    fromJSON = function(GroupJson) {
      GroupObject <- jsonlite::fromJSON(GroupJson)
      if (!is.null(GroupObject$`uri`)) {
        self$`uri` <- GroupObject$`uri`
      }
      if (!is.null(GroupObject$`name`)) {
        self$`name` <- GroupObject$`name`
      }
      if (!is.null(GroupObject$`level`)) {
        self$`level` <- GroupObject$`level`
      }
      if (!is.null(GroupObject$`description`)) {
        self$`description` <- GroupObject$`description`
      }
      if (!is.null(GroupObject$`users`)) {
        self$`users` <- lapply(GroupObject$`users`, function(x) {
          usersObject <- User$new()
          usersObject$fromJSON(jsonlite::toJSON(x, auto_unbox = TRUE, null = "null"))
          usersObject
        })
      }
    },
    fromJSONObject = function(GroupObject) {
      if (!is.null(GroupObject$`uri`)) {
        self$`uri` <- GroupObject$`uri`
      }
      if (!is.null(GroupObject$`name`)) {
        self$`name` <- GroupObject$`name`
      }
      if (!is.null(GroupObject$`level`)) {
        self$`level` <- GroupObject$`level`
      }
      if (!is.null(GroupObject$`description`)) {
        self$`description` <- GroupObject$`description`
      }
      if (!is.null(GroupObject$`users`)) {
        self$`users` <- lapply(GroupObject$`users`, function(x) {
          usersObject <- User$new()
          usersObject$fromJSON(jsonlite::toJSON(x, auto_unbox = TRUE, null = "null"))
          usersObject
        })
      }
    },
    toJSONString = function() {
      usersList = paste(lapply(self$`users`, function(x) x$toJSONString()),collapse = ",")
       sprintf(
        '{
           "uri": %s,
           "name": %s,
           "level": %s,
           "description": %s,
           "users": [%s]
        }',
        jsonlite::toJSON(self$`uri`,auto_unbox=TRUE, null = "null"),
        jsonlite::toJSON(self$`name`,auto_unbox=TRUE, null = "null"),
        jsonlite::toJSON(self$`level`,auto_unbox=TRUE, null = "null"),
        jsonlite::toJSON(self$`description`,auto_unbox=TRUE, null = "null"),
        usersList
      )
    },
    fromJSONString = function(GroupJson) {
      GroupObject <- jsonlite::fromJSON(GroupJson)
      self$`uri` <- GroupObject$`uri`
      self$`name` <- GroupObject$`name`
      self$`level` <- GroupObject$`level`
      self$`description` <- GroupObject$`description`
      self$`users` <- lapply(GroupObject$`users`, function(x) User$new()$fromJSON(jsonlite::toJSON(x, auto_unbox = TRUE)))
    }
  )
)
OpenSILEX/phis-ws-client-r-tool documentation built on Sept. 10, 2020, 8:42 a.m.