R/TradingPartners.r

# Altana Atlas API
#
# Altana Atlas for Regulatory Risk and Trade Compliance
#
# OpenAPI spec version: {{ version or \"v0.0.1\" }}
# Contact: engineering@altanatech.com
# Generated by: https://github.com/swagger-api/swagger-codegen.git

#' TradingPartners Class
#'
#' @field num_results 
#' @field page_size 
#' @field page_num 
#' @field companies 
#' @field edges 
#'
#' @importFrom R6 R6Class
#' @importFrom jsonlite fromJSON toJSON
#' @export
TradingPartners <- R6::R6Class(
  'TradingPartners',
  public = list(
    `num_results` = NULL,
    `page_size` = NULL,
    `page_num` = NULL,
    `companies` = NULL,
    `edges` = NULL,
    initialize = function(`num_results`, `page_size`, `page_num`, `companies`, `edges`){
      if (!missing(`num_results`)) {
        stopifnot(is.numeric(`num_results`), length(`num_results`) == 1)
        self$`num_results` <- `num_results`
      }
      if (!missing(`page_size`)) {
        stopifnot(is.numeric(`page_size`), length(`page_size`) == 1)
        self$`page_size` <- `page_size`
      }
      if (!missing(`page_num`)) {
        stopifnot(is.numeric(`page_num`), length(`page_num`) == 1)
        self$`page_num` <- `page_num`
      }
      if (!missing(`companies`)) {
        stopifnot(is.list(`companies`), length(`companies`) != 0)
        lapply(`companies`, function(x) stopifnot(R6::is.R6(x)))
        self$`companies` <- `companies`
      }
      if (!missing(`edges`)) {
        stopifnot(is.list(`edges`), length(`edges`) != 0)
        lapply(`edges`, function(x) stopifnot(R6::is.R6(x)))
        self$`edges` <- `edges`
      }
    },
    toJSON = function() {
      TradingPartnersObject <- list()
      if (!is.null(self$`num_results`)) {
        TradingPartnersObject[['num_results']] <- self$`num_results`
      }
      if (!is.null(self$`page_size`)) {
        TradingPartnersObject[['page_size']] <- self$`page_size`
      }
      if (!is.null(self$`page_num`)) {
        TradingPartnersObject[['page_num']] <- self$`page_num`
      }
      if (!is.null(self$`companies`)) {
        TradingPartnersObject[['companies']] <- lapply(self$`companies`, function(x) x$toJSON())
      }
      if (!is.null(self$`edges`)) {
        TradingPartnersObject[['edges']] <- lapply(self$`edges`, function(x) x$toJSON())
      }

      TradingPartnersObject
    },
    fromJSON = function(TradingPartnersJson) {
      TradingPartnersObject <- jsonlite::fromJSON(TradingPartnersJson)
      if (!is.null(TradingPartnersObject$`num_results`)) {
        self$`num_results` <- TradingPartnersObject$`num_results`
      }
      if (!is.null(TradingPartnersObject$`page_size`)) {
        self$`page_size` <- TradingPartnersObject$`page_size`
      }
      if (!is.null(TradingPartnersObject$`page_num`)) {
        self$`page_num` <- TradingPartnersObject$`page_num`
      }
      if (!is.null(TradingPartnersObject$`companies`)) {
        self$`companies` <- lapply(TradingPartnersObject$`companies`, function(x) {
          companiesObject <- Company$new()
          companiesObject$fromJSON(jsonlite::toJSON(x, auto_unbox = TRUE))
          companiesObject
        })
      }
      if (!is.null(TradingPartnersObject$`edges`)) {
        self$`edges` <- lapply(TradingPartnersObject$`edges`, function(x) {
          edgesObject <- Edge$new()
          edgesObject$fromJSON(jsonlite::toJSON(x, auto_unbox = TRUE))
          edgesObject
        })
      }
    },
    toJSONString = function() {
       sprintf(
        '{
           "num_results": %d,
           "page_size": %d,
           "page_num": %d,
           "companies": [%s],
           "edges": [%s]
        }',
        self$`num_results`,
        self$`page_size`,
        self$`page_num`,
        lapply(self$`companies`, function(x) paste(x$toJSON(), sep=",")),
        lapply(self$`edges`, function(x) paste(x$toJSON(), sep=","))
      )
    },
    fromJSONString = function(TradingPartnersJson) {
      TradingPartnersObject <- jsonlite::fromJSON(TradingPartnersJson)
      self$`num_results` <- TradingPartnersObject$`num_results`
      self$`page_size` <- TradingPartnersObject$`page_size`
      self$`page_num` <- TradingPartnersObject$`page_num`
      self$`companies` <- lapply(TradingPartnersObject$`companies`, function(x) Company$new()$fromJSON(jsonlite::toJSON(x, auto_unbox = TRUE)))
      self$`edges` <- lapply(TradingPartnersObject$`edges`, function(x) Edge$new()$fromJSON(jsonlite::toJSON(x, auto_unbox = TRUE)))
    }
  )
)
altana-tech/atlas-api-r-sdk documentation built on Dec. 19, 2021, 1:36 a.m.