#' OpenAPI Petstore #' #' This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. #' #' The version of the OpenAPI document: 1.0.0 #' Generated by: https://openapi-generator.tech #' #' @docType class #' @title Pet #' @description Pet Class #' @format An \code{R6Class} generator object #' @field id integer [optional] #' @field category \link{Category} [optional] #' @field name character #' @field photoUrls list( character ) #' @field tags list( \link{Tag} ) [optional] #' @field status character [optional] #' @importFrom R6 R6Class #' @importFrom jsonlite fromJSON toJSON #' @export Pet <- R6::R6Class( "Pet", public = list( `id` = NULL, `category` = NULL, `name` = NULL, `photoUrls` = NULL, `tags` = NULL, `status` = NULL, #' Initialize a new Pet class. #' #' @description #' Initialize a new Pet class. #' #' @param name name #' @param photoUrls photoUrls #' @param id id #' @param category category #' @param tags tags #' @param status pet status in the store #' @param ... Other optional arguments. #' @export initialize = function( `name`, `photoUrls`, `id` = NULL, `category` = NULL, `tags` = NULL, `status` = NULL, ... ) { if (!missing(`name`)) { stopifnot(is.character(`name`), length(`name`) == 1) self$`name` <- `name` } if (!missing(`photoUrls`)) { stopifnot(is.vector(`photoUrls`), length(`photoUrls`) != 0) sapply(`photoUrls`, function(x) stopifnot(is.character(x))) self$`photoUrls` <- `photoUrls` } if (!is.null(`id`)) { stopifnot(is.numeric(`id`), length(`id`) == 1) self$`id` <- `id` } if (!is.null(`category`)) { stopifnot(R6::is.R6(`category`)) self$`category` <- `category` } if (!is.null(`tags`)) { stopifnot(is.vector(`tags`), length(`tags`) != 0) sapply(`tags`, function(x) stopifnot(R6::is.R6(x))) self$`tags` <- `tags` } if (!is.null(`status`)) { stopifnot(is.character(`status`), length(`status`) == 1) self$`status` <- `status` } }, #' To JSON string #' #' @description #' To JSON String #' #' @return Pet in JSON format #' @export toJSON = function() { PetObject <- list() if (!is.null(self$`id`)) { PetObject[["id"]] <- self$`id` } if (!is.null(self$`category`)) { PetObject[["category"]] <- self$`category`$toJSON() } if (!is.null(self$`name`)) { PetObject[["name"]] <- self$`name` } if (!is.null(self$`photoUrls`)) { PetObject[["photoUrls"]] <- self$`photoUrls` } if (!is.null(self$`tags`)) { PetObject[["tags"]] <- lapply(self$`tags`, function(x) x$toJSON()) } if (!is.null(self$`status`)) { PetObject[["status"]] <- self$`status` } PetObject }, #' Deserialize JSON string into an instance of Pet #' #' @description #' Deserialize JSON string into an instance of Pet #' #' @param input_json the JSON input #' @return the instance of Pet #' @export fromJSON = function(input_json) { this_object <- jsonlite::fromJSON(input_json) if (!is.null(this_object$`id`)) { self$`id` <- this_object$`id` } if (!is.null(this_object$`category`)) { category_object <- Category$new() category_object$fromJSON(jsonlite::toJSON(this_object$category, auto_unbox = TRUE, digits = NA)) self$`category` <- category_object } if (!is.null(this_object$`name`)) { self$`name` <- this_object$`name` } if (!is.null(this_object$`photoUrls`)) { self$`photoUrls` <- ApiClient$new()$deserializeObj(this_object$`photoUrls`, "array[character]", loadNamespace("petstore")) } if (!is.null(this_object$`tags`)) { self$`tags` <- ApiClient$new()$deserializeObj(this_object$`tags`, "array[Tag]", loadNamespace("petstore")) } if (!is.null(this_object$`status`)) { self$`status` <- this_object$`status` } self }, #' To JSON string #' #' @description #' To JSON String #' #' @return Pet in JSON format #' @export toJSONString = function() { jsoncontent <- c( if (!is.null(self$`id`)) { sprintf( '"id": %d ', self$`id` ) }, if (!is.null(self$`category`)) { sprintf( '"category": %s ', jsonlite::toJSON(self$`category`$toJSON(), auto_unbox = TRUE, digits = NA) ) }, if (!is.null(self$`name`)) { sprintf( '"name": "%s" ', self$`name` ) }, if (!is.null(self$`photoUrls`)) { sprintf( '"photoUrls": [%s] ', paste(unlist(lapply(self$`photoUrls`, function(x) paste0('"', x, '"'))), collapse = ",") ) }, if (!is.null(self$`tags`)) { sprintf( '"tags": [%s] ', paste(sapply(self$`tags`, function(x) jsonlite::toJSON(x$toJSON(), auto_unbox = TRUE, digits = NA)), collapse = ",") ) }, if (!is.null(self$`status`)) { sprintf( '"status": "%s" ', self$`status` ) } ) jsoncontent <- paste(jsoncontent, collapse = ",") as.character(jsonlite::minify(paste("{", jsoncontent, "}", sep = ""))) }, #' Deserialize JSON string into an instance of Pet #' #' @description #' Deserialize JSON string into an instance of Pet #' #' @param input_json the JSON input #' @return the instance of Pet #' @export fromJSONString = function(input_json) { this_object <- jsonlite::fromJSON(input_json) self$`id` <- this_object$`id` self$`category` <- Category$new()$fromJSON(jsonlite::toJSON(this_object$category, auto_unbox = TRUE, digits = NA)) self$`name` <- this_object$`name` self$`photoUrls` <- ApiClient$new()$deserializeObj(this_object$`photoUrls`, "array[character]", loadNamespace("petstore")) self$`tags` <- ApiClient$new()$deserializeObj(this_object$`tags`, "array[Tag]", loadNamespace("petstore")) self$`status` <- this_object$`status` self }, #' Validate JSON input with respect to Pet #' #' @description #' Validate JSON input with respect to Pet and throw an exception if invalid #' #' @param input the JSON input #' @export validateJSON = function(input) { input_json <- jsonlite::fromJSON(input) # check the required field `name` if (!is.null(input_json$`name`)) { stopifnot(is.character(input_json$`name`), length(input_json$`name`) == 1) } else { stop(paste("The JSON input `", input, "` is invalid for Pet: the required field `name` is missing.")) } # check the required field `photoUrls` if (!is.null(input_json$`photoUrls`)) { stopifnot(is.vector(input_json$`photoUrls`), length(input_json$`photoUrls`) != 0) tmp <- sapply(input_json$`photoUrls`, function(x) stopifnot(is.character(x))) } else { stop(paste("The JSON input `", input, "` is invalid for Pet: the required field `photoUrls` is missing.")) } }, #' To string (JSON format) #' #' @description #' To string (JSON format) #' #' @return String representation of Pet #' @export toString = function() { self$toJSONString() }, #' Return true if the values in all fields are valid. #' #' @description #' Return true if the values in all fields are valid. #' #' @return true if the values in all fields are valid. #' @export isValid = function() { # check if the required `name` is null if (is.null(self$`name`)) { return(FALSE) } # check if the required `photoUrls` is null if (is.null(self$`photoUrls`)) { return(FALSE) } TRUE }, #' Return a list of invalid fields (if any). #' #' @description #' Return a list of invalid fields (if any). #' #' @return A list of invalid fields (if any). #' @export getInvalidFields = function() { invalid_fields <- list() # check if the required `name` is null if (is.null(self$`name`)) { invalid_fields["name"] = "Non-nullable required field `name` cannot be null." } # check if the required `photoUrls` is null if (is.null(self$`photoUrls`)) { invalid_fields["photoUrls"] = "Non-nullable required field `photoUrls` cannot be null." } invalid_fields } ) )