diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/tasks/demo.rake | 9 | ||||
| -rw-r--r-- | lib/tasks/organisations.rake | 32 |
2 files changed, 36 insertions, 5 deletions
diff --git a/lib/tasks/demo.rake b/lib/tasks/demo.rake index fbafa96c1..d7e8c59f1 100644 --- a/lib/tasks/demo.rake +++ b/lib/tasks/demo.rake @@ -10,14 +10,13 @@ namespace :demo do organisation = Organisation.create!(:name => "DemoChouette") user = organisation.users.create( :name => "Demo", :email => "demo@chouette.mobi", :password => "chouette", :password_confirmation =>"chouette") - user.confirm! referential = organisation.referentials.create( :name => "Tatrobus", :slug => "tatrobus", :prefix => "TAT") #resource = Rack::Test::UploadedFile.new( Rails.application.config.demo_data, 'application/zip', false) #import_instance = ImportTask.new( :resources => resource, :referential_id => referential.id, :user_name => user.name, :no_save => false, :user_id => user.id, :name => "initialize demo", :data_format => "neptune") #import_instance.save - - File.open("/tmp/parameters_demo.json", "w") { |file| + + File.open("/tmp/parameters_demo.json", "w") { |file| file.write('{ "parameters" : { "neptune-import": { @@ -30,10 +29,10 @@ namespace :demo do } } }') } - + cmd = 'curl -F "file=@'+Rails.application.config.demo_data+';filename=tatrobus.zip" -F "file=@/tmp/parameters_demo.json;filename=parameters.json" http://localhost:8180/chouette_iev/referentials/tatrobus/importer/neptune' system(cmd) - + puts "Restore demo environment complete" end end diff --git a/lib/tasks/organisations.rake b/lib/tasks/organisations.rake new file mode 100644 index 000000000..06e1d3da7 --- /dev/null +++ b/lib/tasks/organisations.rake @@ -0,0 +1,32 @@ +namespace :organisations do + def api_retrieve_organisation + conf = Rails.application.config.try(:stif_portail_api) + raise 'Rails.application.config.stif_portail_api settings is not defined' unless conf + + conn = Faraday.new(:url => conf[:url]) do |c| + c.headers['Authorization'] = "Token token=\"#{conf[:key]}\"" + c.request :url_encoded + c.adapter Faraday.default_adapter + end + + resp = conn.get '/api/v1/organizations' + JSON.parse resp.body if resp.status == 200 + end + + def sync_organisations data + data.each do |org| + Organisation.sync_or_create(code: org['code'], name: org['name']).tap do |organisation| + organisation.name = org['name'] + organisation.synced_at = Time.now + organisation.save if organisation.changed? + puts "✓ Organisation #{organisation.name} has been updated" unless Rails.env.test? + end + end + end + + desc "Sync organisations from stif portail" + task sync: :environment do + data = api_retrieve_organisation + sync_organisations(data) if data + end +end |
