class Eco::API::Session::Config

Attributes

name[R]

Public Class Methods

new(name = :default) click to toggle source
Calls superclass method
# File lib/eco/api/session/config.rb, line 7
def initialize(name = :default)
  super(nil)
  @name = name
  self["org"] = {}
end

Public Instance Methods

active_api(name) click to toggle source

Set the active api by `name` @see Eco::API::Session::Config::Apis#active_api= @return [Eco::API::Session::Config] this configuration

# File lib/eco/api/session/config.rb, line 106
def active_api(name)
  apis.active_name = name
  self
end
active_enviro() click to toggle source

@see Eco::API::Session::Config::Apis#active_root_name

# File lib/eco/api/session/config.rb, line 112
def active_enviro
  apis.active_root_name
end
add_api(name, **kargs) click to toggle source

@param (see Eco::API::Session::Config::Apis#add) @return [Eco::API::Session::Config] this configuration

# File lib/eco/api/session/config.rb, line 98
def add_api(name, **kargs)
  apis.add(name, **kargs)
  self
end
api(logger = ::Logger.new(IO::NULL), version: nil) click to toggle source

@see Eco::API::Session::Config::Apis#api

# File lib/eco/api/session/config.rb, line 117
def api(logger = ::Logger.new(IO::NULL), version: nil)
  apis.api(logger, version: version)
end
apis() click to toggle source

@return [Eco::API::Session::Config::Apis]

# File lib/eco/api/session/config.rb, line 87
def apis
  self["apis"] ||= Eco::API::Session::Config::Apis.new(config: self)
end
apis?() click to toggle source

@return [Boolean] `true` if there is any api configuration defined, `false` otherwise

# File lib/eco/api/session/config.rb, line 92
def apis?
  apis.apis?
end
batch_policies() { |batch_policies| ... } click to toggle source

@return [Eco::API::Session::Batch::Policies]

# File lib/eco/api/session/config.rb, line 338
def batch_policies
  @batch_policies = self["batch_policies"] ||= Eco::API::Session::Batch::Policies.new("batch_policy")
  if block_given?
    yield(@batch_policies)
    self
  else
    @batch_policies
  end
end
clone(name) click to toggle source

@!group Config instance pure methods

# File lib/eco/api/session/config.rb, line 15
def clone(name)
  keys.each_with_object(self.class.new(name)) do |key, cnf|
    begin
      cnf[key] = self[key].clone(config: cnf)
    rescue ArgumentError
      cnf[key] = self[key].clone
    end
  end
end
default_schema=(name) click to toggle source

Set the **default schema** this `api` org configuration should work on.

# File lib/eco/api/session/config.rb, line 296
def default_schema=(name)
  people.default_schema = name
end
default_usergroup=(value) click to toggle source

Define the default usergroup that should be given to people with no usergroups.

# File lib/eco/api/session/config.rb, line 271
def default_usergroup=(value)
  people.default_usergroup = value
end
discarded_people_file=(value) click to toggle source

Specify the file that holds the `csv` with people to be excluded from `API` updates.

# File lib/eco/api/session/config.rb, line 276
def discarded_people_file=(value)
  people.discarded_file = value
end
dry_run!() click to toggle source

@deprecated old helper to fix the dry-run mode @note this is now done via `options`, parsed as an option

# File lib/eco/api/session/config.rb, line 138
def dry_run!
  self["dry-run"] = true
end
dry_run?() click to toggle source

@deprecated old helper to check if we are in dry-run mode @note this is now done via `options`, which is parsed as an option

# File lib/eco/api/session/config.rb, line 144
def dry_run?
  self["dry-run"]
end
error_handlers() { |error_handlers| ... } click to toggle source

@return [Eco::API::Error::Handlers]

# File lib/eco/api/session/config.rb, line 349
def error_handlers
  @error_handlers = self["error_handlers"] ||= Eco::API::Error::Handlers.new
  if block_given?
    yield(@error_handlers)
    self
  else
    @error_handlers
  end
end
file_manager() click to toggle source
# File lib/eco/api/session/config.rb, line 183
def file_manager
  Eco::API::Common::Session::FileManager.new(self)
end
file_timestamp_pattern=(pattern) click to toggle source
# File lib/eco/api/session/config.rb, line 179
def file_timestamp_pattern=(pattern)
  files.timestamp_pattern = pattern
end
files() click to toggle source

@return [Eco::API::Session::Config::Files]

# File lib/eco/api/session/config.rb, line 152
def files
  self["files"]      ||= Eco::API::Session::Config::Files.new(config: self)
end
location_codes() click to toggle source
# File lib/eco/api/session/config.rb, line 216
def location_codes
  org["location_codes"]
end
location_codes=(file) click to toggle source
# File lib/eco/api/session/config.rb, line 212
def location_codes=(file)
  org["location_codes"] = file
end
locations_mapper() click to toggle source
# File lib/eco/api/session/config.rb, line 220
def locations_mapper
  return @locations_mapper if instance_variable_defined?(:@locations_mapper)
  file = file_manager.newest(location_codes)
  @locations_mapper = Eco::Data::Mapper.new(file_manager.load_json(file), internal: :first)
end
log_connection=(value) click to toggle source
# File lib/eco/api/session/config.rb, line 74
def log_connection=(value)
  logger.log_connection = value
end
log_console_level=(value) click to toggle source
# File lib/eco/api/session/config.rb, line 58
def log_console_level=(value)
  logger.console_level= value
end
log_file=(file) click to toggle source
# File lib/eco/api/session/config.rb, line 66
def log_file=(file)
  logger.file = file
end
log_file_level=(value) click to toggle source
# File lib/eco/api/session/config.rb, line 62
def log_file_level=(value)
  logger.file_level = value
end
logger() click to toggle source

@return [Eco::API::Session::Config::Logger]

# File lib/eco/api/session/config.rb, line 54
def logger
  self["logger"]     ||= Eco::API::Session::Config::Logger.new(config: self)
end
login_providers() click to toggle source

@return [Eco::API::Organization::LoginProviders]

# File lib/eco/api/session/config.rb, line 255
def login_providers
  return @login_providers if instance_variable_defined?(:@login_providers)
  provs            = api&.login_providers.to_a
  @login_providers = Eco::API::Organization::LoginProviders.new(provs)
end
mailer() click to toggle source

Helper to send emails. @return [Eco::API::Session::Config::Mailer]

# File lib/eco/api/session/config.rb, line 46
def mailer
  self["mailer"]     ||= Eco::API::Session::Config::Mailer.new(config: self)
end
org() click to toggle source

@!group Organization related shortcuts

# File lib/eco/api/session/config.rb, line 208
def org
  self["org"]
end
people() click to toggle source

@return [Eco::API::Session::Config::People]

# File lib/eco/api/session/config.rb, line 266
def people
  self["people"]     ||= Eco::API::Session::Config::People.new(config: self)
end
people_cache=(file) click to toggle source

Set the base folder/name.ext name of the fieles where people will be cached.

# File lib/eco/api/session/config.rb, line 281
def people_cache=(file)
  people.cache = file
end
person_fields_mapper=(file) click to toggle source

Specify the `.json` file name with the mappings [`DataInputColumnName`, `internal-name`].

# File lib/eco/api/session/config.rb, line 291
def person_fields_mapper=(file)
  people.fields_mapper = file
end
person_parser(format: :csv, &block) click to toggle source

@see Eco::API::Session::Config::People @param (see Eco::API::Session::Config::People) @return [Eco::API::Common::People::PersonParser] parser/serializer for the defined `format`.

# File lib/eco/api/session/config.rb, line 303
def person_parser(format: :csv, &block)
  people.parser(format: format, &block)
end
policies() { |policies| ... } click to toggle source

@return [Eco::API::Policies]

# File lib/eco/api/session/config.rb, line 327
def policies
  @policies = self["policies"] ||= Eco::API::Policies.new
  if block_given?
    yield(@policies)
    self
  else
    @policies
  end
end
policy_groups() click to toggle source

@return [Eco::API::Organization::PolicyGroups]

# File lib/eco/api/session/config.rb, line 241
def policy_groups
  return @policy_groups if instance_variable_defined?(:@policy_groups)
  pgs            = api&.policy_groups.to_a
  @policy_groups = Eco::API::Organization::PolicyGroups.new(pgs)
end
post_launch() click to toggle source

@return [Eco::API::Session::Config::PostLaunch]

# File lib/eco/api/session/config.rb, line 322
def post_launch
  self["post_launch"] ||= Eco::API::Session::Config::PostLaunch.new(config: self)
end
reopen() { |self| ... } click to toggle source
# File lib/eco/api/session/config.rb, line 25
def reopen
  yield(self)
end
requests_backup_folder=(folder) click to toggle source

Set the base folder name where requests launched to the server will be saved for future reference.

# File lib/eco/api/session/config.rb, line 286
def requests_backup_folder=(folder)
  people.requests_folder = folder
end
require(file = nil, match: nil) click to toggle source
# File lib/eco/api/session/config.rb, line 187
def require(file = nil, match: nil)
  begin
    if match
      file_manager.dir.dir_files(pattern: match).each do |file|
        require_relative File.expand_path(file)
      end
    else
      target = File.expand_path(file_manager.dir.file(file))
      require_relative target
    end
  rescue LoadError => e
    if apis.active_api.one_off?
      pp e.to_s
    else
      raise
    end
  end
end
run_mode=(mode) click to toggle source

Sets the `mode` of the active api @see Eco::API::Session::Config::Api#mode @param (see Eco::API::Session::Config::Api#mode)

# File lib/eco/api/session/config.rb, line 124
def run_mode=(mode)
  apis.active_api.mode = mode
end
run_mode_local?() click to toggle source
# File lib/eco/api/session/config.rb, line 128
def run_mode_local?
  apis.active_api.local?
end
run_mode_remote?() click to toggle source
# File lib/eco/api/session/config.rb, line 132
def run_mode_remote?
  apis.active_api.remote?
end
s3storage() click to toggle source

Helper to upload files and folders to `S3`. @return [Eco::API::Session::Config::S3Storage]

# File lib/eco/api/session/config.rb, line 40
def s3storage
  self["s3_storage"] ||= Eco::API::Session::Config::S3Storage.new(config: self)
end
schemas() click to toggle source

@return pEco::API::Organization::PersonSchemas

# File lib/eco/api/session/config.rb, line 248
def schemas
  return @schemas if instance_variable_defined?(:@schemas)
  schs     = api&.person_schemas.to_a
  @schemas = Eco::API::Organization::PersonSchemas.new(schs)
end
session() click to toggle source

@return [Eco::API::Session] the `session` linked to this `config`

# File lib/eco/api/session/config.rb, line 82
def session
  @session     ||= Eco::API::Session.new(self)
end
sftp() click to toggle source

Helper to manage `SFTP` files and folders. @return [Eco::API::Session::Config::SFTP]

# File lib/eco/api/session/config.rb, line 34
def sftp
  self["sftp"]       ||= Eco::API::Session::Config::SFTP.new(config: self)
end
tagtree(enviro: nil) click to toggle source

@return [Eco::API::Organization::TagTree]

# File lib/eco/api/session/config.rb, line 231
def tagtree(enviro: nil)
  return @tagtree if instance_variable_defined?(:@tagtree) && @tagtree.enviro == enviro
  if tree_file = org["tagtree"]
    tree      = []
    tree      = file_manager.load_json(tree_file) unless !tree_file
    @tagtree  = Eco::API::Organization::TagTree.new(tree, enviro: enviro)
  end
end
tagtree=(file) click to toggle source
# File lib/eco/api/session/config.rb, line 226
def tagtree=(file)
  org["tagtree"] = file
end
timestamp_console=(value) click to toggle source
# File lib/eco/api/session/config.rb, line 70
def timestamp_console=(value)
  logger.timestamp_console = value
end
usecases() { |usecases| ... } click to toggle source

@return [Eco::API::UseCases]

# File lib/eco/api/session/config.rb, line 311
def usecases
  @usecases = self["usecases"] ||= Eco::API::UseCases.new
  if block_given?
    yield(@usecases)
    self
  else
    @usecases
  end
end
workflow() { |wf| ... } click to toggle source

@return [Eco::API::Session::Config::Workflow]

# File lib/eco/api/session/config.rb, line 360
def workflow
  @workflow = self["workflow"]  ||= Eco::API::Session::Config::Workflow.new(config: self)
  @workflow.tap do |wf|
    yield(wf) if block_given?
  end
end
working_directory(mode: nil) click to toggle source
# File lib/eco/api/session/config.rb, line 161
def working_directory(mode: nil)
  return files.working_directory if apis.active_api&.one_off?

  unless mode
    wd = files.working_directory
    return wd unless wd.to_s.strip.empty?
  end

  mode ||= :active_api
  if mode == :active_api
    apis.active_root_name
  elsif mode == :raw_api_name
    apis.active_name
  else
    files.working_directory
  end
end
working_directory=(path) click to toggle source

Defines in the base folder from where files are expected to be found when relative paths are used

# File lib/eco/api/session/config.rb, line 157
def working_directory=(path)
  files.working_directory = path
end