lob / lob-ruby

Ruby Wrapper for Lob API
lob.com
MIT License
97 stars 43 forks source link

undefined method `config' for #<Lob::Configuration #230

Closed leoplct closed 7 months ago

leoplct commented 7 months ago

I got this error when creating a postcard

/Users/xx/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/lob-6.0.5/lib/openapi_client/api/postcards_api.rb:40:in postcard_create_with_http_info': undefined methodconfig' for #<Lob::Configuration:0x0000000113aef3d0 @scheme="https", @host="api.lob.com", @base_path="/v1", @server_index=0, @server_operation_index={}, @server_variables={}, @server_operation_variables={}, @api_key={}, @api_key_prefix={}, @client_side_validation=true, @verify_ssl=true, @verify_ssl_host=true, @cert_file=nil, @key_file=nil, @timeout=0, @params_encoding=nil, @debugging=false, @inject_format=false, @force_ending_format=false, @logger=#<ActiveSupport::BroadcastLogger:0x000000010eb8e570 @broadcasts=[#<ActiveSupport::Logger:0x00000001123ab4a8 @level=0, @progname=nil, @default_formatter=#<Logger::Formatter:0x000000010ec44fa0 @datetime_format=nil>, @formatter=#<ActiveSupport::Logger::SimpleFormatter:0x000000010ebc2528 @datetime_format=nil, @thread_key="activesupport_tagged_logging_tags:80540">, @logdev=#<Logger::LogDevice:0x00000001123aca88 @shift_period_suffix="%Y%m%d", @shift_size=1048576, @shift_age=0, @filename="/Users/xxx/Dropbox/dev/amzndata/log/development.log", @dev=#<File:/Users/xxx/Dropbox/dev/amzndata/log/development.log>, @binmode=false, @mon_data=#, @mon_data_owner_object_id=67900>, @local_level_key=:logger_thread_safe_level_80520>, #<ActiveSupport::Logger:0x0000000114863890 @level=0, @progname=nil, @default_formatter=#<Logger::Formatter:0x00000001148aca90 @datetime_format=nil>, @formatter=#<ActiveSupport::Logger::SimpleFormatter:0x00000001148ac6f8 @datetime_format=nil>, @logdev=#<Logger::LogDevice:0x0000000114863750 @shift_period_suffix=nil, @shift_size=nil, @shift_age=nil, @filename=nil, @dev=#<IO:>, @binmode=false, @mon_data=#, @mon_data_owner_object_id=94620>, @local_level_key=:logger_thread_safe_level_97800>], @progname="Broadcast", @formatter=#<ActiveSupport::Logger::SimpleFormatter:0x000000010ebc2528 @datetime_format=nil, @thread_key="activesupport_tagged_logging_tags:80540">>, @username="test_78e71c7c1218d12670845d0546ce2c595e4"> (NoMethodError)

  if @api_client.config.debugging
                ^^^^^^^

Did you mean? configure

postcardCreate = Lob::PostcardEditable.new({
      description: "Demo Postcard job",
      from: "adr_XXXXX",
      use_type: "marketing",
      front: "https://xxxx-postcard.s3.amazonaws.com/front.pdf",
      back: "https://xxx-postcard.s3.amazonaws.com/back.pdf",
      to: Lob::AddressEditable.new({
        name: "#{self.company} - #{self.name}",
        address_line1: self.line1,
        address_line2: self.line2,
        address_city: self.city,
        address_state: self.state,
        address_zip: self.postal_code,
      }),
    })

    config = Lob::Configuration.default
    config.username = 'test_XXXXXX'

    postcardApi = Lob::PostcardsApi.new(config)
    createdPostcard = postcardApi.create(postcardCreate)
    createdPostcard

This object correctly exists and prints my secret_key

config = Lob::Configuration.default
config.username

but If I try to call config.config() it doesn't esists the method.

From the offical doc it's not clear where "config" came from. Screenshot 2024-02-07 at 11 36 05

leoplct commented 7 months ago

I found the issue. The Getting started in the doc contains an error. This the correct code

config/initializers/lob.rb

require 'lob'
config = Lob::Configuration.default
config.username = 'XXX'
$lob_config = Lob::ApiClient.new(config)

then this the code to send a postcard

def send_postcard

    postcardCreate = Lob::PostcardEditable.new({
      description: "Postcard",
      from: "adr_XXXX",
      use_type: "marketing",
      size: "6x9",
      front: "https://XXX-postcard.s3.amazonaws.com/front.pdf",
      back: "https://XXX-postcard.s3.amazonaws.com/back.pdf",
      to: Lob::AddressEditable.new({
        name: "#{self.company} - #{self.name}",
        address_line1: self.line1,
        address_line2: self.line2,
        address_city: self.city,
        address_state: self.state,
        address_zip: self.postal_code,
      }),
    })

    postcardApi = Lob::PostcardsApi.new($lob_config)
    createdPostcard = postcardApi.create(postcardCreate)
  end