module MnoEnterprise::TestingSupport::OrganizationsSharedHelpers

Public Instance Methods

admin_hash_for_organization(organization) click to toggle source
# File lib/mno_enterprise/testing_support/organizations_shared_helpers.rb, line 136
def admin_hash_for_organization(organization)
  hash = {}
  hash['organization'] = partial_hash_for_organization(organization, true)
  hash['organization']['members'] = partial_hash_for_members(organization, true)
  hash['organization']['credit_card'] = {'presence' => false}
  hash['organization'].merge!(admin_partial_hash_for_invoices(organization))
  hash['organization'].merge!(admin_partial_hash_for_active_apps(organization))
  hash
end
admin_partial_hash_for_active_apps(organization) click to toggle source
# File lib/mno_enterprise/testing_support/organizations_shared_helpers.rb, line 159
def admin_partial_hash_for_active_apps(organization)
  hash = {'active_apps' => []}
  organization.app_instances.select { |app| app.status == "running" }.each do |active_apps|
    hash['active_apps'].push({
                                 'id' => active_apps.id,
                                 'name' => active_apps.name,
                                 'stack' => active_apps.stack,
                                 'uid' => active_apps.uid,
                                 'app_name' => active_apps.app.name,
                                 'app_logo' => active_apps.app.logo
                             })
  end
  hash
end
admin_partial_hash_for_invoices(organization) click to toggle source
# File lib/mno_enterprise/testing_support/organizations_shared_helpers.rb, line 146
def admin_partial_hash_for_invoices(organization)
  hash = {'invoices' => []}
  organization.invoices.order("ended_at DESC").each do |invoice|
    hash['invoices'].push({
                              'started_at' => invoice.started_at,
                              'ended_at' => invoice.ended_at,
                              'amount' => AccountingjsSerializer.serialize(invoice.total_due),
                              'paid' => invoice.paid?
                          })
  end
  hash
end
hash_for_organization(organization, user, admin = false) click to toggle source
# File lib/mno_enterprise/testing_support/organizations_shared_helpers.rb, line 113
def hash_for_organization(organization, user, admin = false)
  hash = {
      'organization' => partial_hash_for_organization(organization),
      'current_user' => partial_hash_for_current_user(organization, user)
  }
  hash['organization']['members'] = partial_hash_for_members(organization)

  if user.role(organization) == 'Super Admin'
    hash.merge!(partial_hash_for_billing(organization))
    hash.merge!(partial_hash_for_invoices(organization))

    if (cc = organization.credit_card)
      hash.merge!(partial_hash_for_credit_card(cc))
    end

    if (situations = organization.arrears_situations)
      hash.merge!(partial_hash_for_arrears_situations(situations))
    end
  end

  return hash
end
hash_for_organizations(organizations, admin = false) click to toggle source
# File lib/mno_enterprise/testing_support/organizations_shared_helpers.rb, line 101
def hash_for_organizations(organizations, admin = false)
  {
      'organizations' => organizations.map { |o| partial_hash_for_organization(o, admin) }
  }
end
hash_for_reduced_organization(organization) click to toggle source
# File lib/mno_enterprise/testing_support/organizations_shared_helpers.rb, line 107
def hash_for_reduced_organization(organization)
  {
      'organization' => partial_hash_for_organization(organization)
  }
end
partial_hash_for_billing(organization) click to toggle source
# File lib/mno_enterprise/testing_support/organizations_shared_helpers.rb, line 78
def partial_hash_for_billing(organization)
  {
      'billing' => {
          'current' => organization.current_billing,
          'credit' => organization.current_credit
      }
  }
end
partial_hash_for_credit_card(cc) click to toggle source
# File lib/mno_enterprise/testing_support/organizations_shared_helpers.rb, line 3
def partial_hash_for_credit_card(cc)
  {
      'credit_card' => {
          'id' => cc.id,
          'title' => cc.title,
          'first_name' => cc.first_name,
          'last_name' => cc.last_name,
          'number' => cc.masked_number,
          'month' => cc.month,
          'year' => cc.year,
          'country' => cc.country,
          'verification_value' => 'CVV',
          'billing_address' => cc.billing_address,
          'billing_city' => cc.billing_city,
          'billing_postcode' => cc.billing_postcode,
          'billing_country' => cc.billing_country
      }
  }
end
partial_hash_for_current_user(organization, user) click to toggle source
# File lib/mno_enterprise/testing_support/organizations_shared_helpers.rb, line 68
def partial_hash_for_current_user(organization, user)
  {
      'id' => user.id,
      'name' => user.name,
      'surname' => user.surname,
      'email' => user.email,
      'role' => user.role(organization)
  }
end
partial_hash_for_invoices(organization) click to toggle source
# File lib/mno_enterprise/testing_support/organizations_shared_helpers.rb, line 87
def partial_hash_for_invoices(organization)
  hash = {'invoices' => []}
  organization.invoices.order("ended_at DESC").each do |invoice|
    hash['invoices'].push({
                              'period' => invoice.period_label,
                              'amount' => invoice.total_due,
                              'paid' => invoice.paid?,
                              'link' => mnoe_enterprise.invoice_path(invoice.slug),
                          })
  end

  return hash
end
partial_hash_for_members(organization, admin = false) click to toggle source
# File lib/mno_enterprise/testing_support/organizations_shared_helpers.rb, line 23
def partial_hash_for_members(organization, admin = false)
  list = []
  organization.users.each do |user|
    u = {
        'id' => user.id,
        'entity' => 'User',
        'name' => user.name,
        'surname' => user.surname,
        'email' => user.email,
        'role' => user.role(organization)
    }
    u['uid'] = user.uid if admin
    list.push(u)
  end


  organization.org_invites.each do |invite|
    list.push({
                  'id' => invite.id,
                  'entity' => 'OrgInvite',
                  'email' => invite.user_email,
                  'role' => invite.user_role
              })
  end

  return list
end
partial_hash_for_organization(organization, admin = false) click to toggle source
# File lib/mno_enterprise/testing_support/organizations_shared_helpers.rb, line 51
def partial_hash_for_organization(organization, admin = false)
  ret = {
      'id' => organization.id,
      'name' => organization.name,
      'soa_enabled' => organization.soa_enabled,
      'account_frozen' => organization.account_frozen,
      'payment_restriction' => organization.payment_restriction,
      'financial_year_end_month' => organization.financial_year_end_month
  }

  if admin
    ret['uid'] = organization.uid
  end

  ret
end