class VNCPostAPI::Base

Private Class Methods

clear_auth_token() click to toggle source
# File lib/vncpost_api/resources/base.rb, line 41
def self.clear_auth_token
  connection.auth_type = nil
  connection.bearer_token = nil
end
retrieve_token() click to toggle source
# File lib/vncpost_api/resources/base.rb, line 26
def self.retrieve_token
  clear_auth_token

  if VNCPostAPI.config&.username && VNCPostAPI.config&.password
    response = connection.post("#{Base.site}/User/Login", {
      Username: VNCPostAPI.config.username,
      Password: VNCPostAPI.config.password
    }.to_json)
    connection.auth_type = :bearer
    connection.bearer_token = JSON.parse(response.body)["token"]
  else
    raise ArgumentError, "Please set the username and password in the config file under the initializer dir"
  end
end

Public Instance Methods

build() click to toggle source
# File lib/vncpost_api/resources/base.rb, line 20
def build
  raise NotImplementedError, "#build is not supported"
end
create() click to toggle source
Calls superclass method
# File lib/vncpost_api/resources/base.rb, line 7
def create
  self.class.retrieve_token
  format_before_send_request
  super
rescue => e
  reset_attributes_format
  raise e
end
update() click to toggle source
# File lib/vncpost_api/resources/base.rb, line 16
def update
  raise NotImplementedError, "#update is not supported"
end

Private Instance Methods

format_before_send_request() click to toggle source
# File lib/vncpost_api/resources/base.rb, line 46
def format_before_send_request
  @attributes.deep_transform_keys!(&:camelcase)
end
load_attributes_from_response(response) click to toggle source
Calls superclass method
# File lib/vncpost_api/resources/base.rb, line 54
def load_attributes_from_response(response)
  super
  reset_attributes_format
end
reset_attributes_format() click to toggle source
# File lib/vncpost_api/resources/base.rb, line 50
def reset_attributes_format
  @attributes.deep_transform_keys!(&:underscore)
end