aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorXinhui2016-08-05 13:23:21 +0200
committerXinhui2016-08-05 13:23:21 +0200
commitb536cc2e810908b2d3cabb50a7ab79f1d9fbdbcd (patch)
treec6b987040d5623c41d54679148c48fed55f6f42e /lib
parentcab166128b905e61aea75c063e47c961f12b144f (diff)
parent5da381426eed3774f4eb17fe7ec104e9caf4eac2 (diff)
downloadchouette-core-b536cc2e810908b2d3cabb50a7ab79f1d9fbdbcd.tar.bz2
Merge branch 'sso'
Diffstat (limited to 'lib')
-rw-r--r--lib/tasks/demo.rake9
-rw-r--r--lib/tasks/organisations.rake32
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