65 lines
2.7 KiB
Ruby
65 lines
2.7 KiB
Ruby
require 'helpers/unique_names_helper'
|
|
|
|
module CartoDB
|
|
module Factories
|
|
include UniqueNamesHelper
|
|
|
|
def new_organization(attributes = {})
|
|
organization = Organization.new
|
|
|
|
organization.name = attributes[:name] || unique_name('organization')
|
|
organization.seats = attributes[:seats] || 10
|
|
organization.quota_in_bytes = attributes[:quota_in_bytes] || 100.megabytes
|
|
organization.geocoding_quota = attributes[:geocoding_quota] || 1000
|
|
organization.here_isolines_quota = attributes[:here_isolines_quota] || 1000
|
|
organization.obs_snapshot_quota = attributes[:obs_snapshot_quota] || 1000
|
|
organization.obs_general_quota = attributes[:obs_general_quota] || 1000
|
|
organization.mapzen_routing_quota = attributes[:mapzen_routing_quota] || 1000
|
|
organization.map_view_quota = attributes[:map_view_quota] || 100000
|
|
organization.website = attributes[:website] || 'carto.com'
|
|
organization.description = attributes[:description] || 'Lorem ipsum dolor sit amet'
|
|
organization.display_name = attributes[:display_name] || 'Vizzuality Inc'
|
|
organization.discus_shortname = attributes[:discus_shortname] || 'cartodb'
|
|
organization.location = attributes[:location] || 'Madrid'
|
|
organization.twitter_username = attributes[:twitter_username] || 'cartodb'
|
|
organization.twitter_datasource_enabled = attributes[:twitter_datasource_enabled] || false
|
|
organization.google_maps_key = attributes[:google_maps_key] || nil
|
|
organization.google_maps_private_key = attributes[:google_maps_private_key] || nil
|
|
organization.builder_enabled = attributes[:builder_enabled] || false
|
|
organization.password_expiration_in_d = attributes[:password_expiration_in_d]
|
|
|
|
organization
|
|
end
|
|
|
|
def create_organization(attributes = {})
|
|
organization = new_organization(attributes)
|
|
organization.save
|
|
organization
|
|
end
|
|
|
|
def create_organization_with_owner(attributes = {})
|
|
organization = create_organization(attributes)
|
|
owner = create_user(quota_in_bytes: 50.megabytes)
|
|
uo = CartoDB::UserOrganization.new(organization.id, owner.id)
|
|
uo.promote_user_to_admin
|
|
organization.reload
|
|
owner.reload
|
|
organization
|
|
end
|
|
|
|
def create_organization_with_users(attributes = {})
|
|
organization = create_organization_with_owner(attributes)
|
|
create_user(organization: organization,
|
|
organization_id: organization.id,
|
|
quota_in_bytes: 20.megabytes,
|
|
account_type: 'ORGANIZATION USER')
|
|
organization.reload
|
|
organization
|
|
end
|
|
end
|
|
end
|
|
|
|
class OrganizationFactory
|
|
include CartoDB::Factories
|
|
end
|