class Eco::API::UseCases::DefaultCases::SetDefaultTagCase

Public Instance Methods

main(people, session, options, usecase) click to toggle source

take the deepest tag (the one that is further down in the tree) different options (several nodes at the same depth):

> take the common node between them (i.e. you have Hamilton and Auckland -> take New Zealand)

> if there's no common node between them, take the `first` (unless they are at top level of the tree)

# File lib/eco/api/usecases/default_cases/set_default_tag_case.rb, line 9
def main(people, session, options, usecase)
  micro    = session.micro
  tagtree_present!(session)
  users    = users_present!(people, session)
  update   = session.new_job("main", "update", :update, usecase, :account)

  users.each do |person|
    micro.refresh_default_tag(nil, person, options)
    update.add(person)
  end
end

Private Instance Methods

tagtree_present!(session) click to toggle source
# File lib/eco/api/usecases/default_cases/set_default_tag_case.rb, line 23
def tagtree_present!(session)
  if !session.tagtree
    msg = "There is no tagtree definition in the configuration files\n" +
          "For this usecase to work out you need to define it."
    session.logger.fatal(msg)
    raise msg
  end
end
users_present!(people, session) click to toggle source
# File lib/eco/api/usecases/default_cases/set_default_tag_case.rb, line 32
def users_present!(people, session)
  people.users.tap do |users|
    unless users.length > 0
      session.logger.info(msg = "There are no people with account... aborting script")
      raise msg
    end
  end
end