def import
@provider_status = ProviderStatus.show(params[:id], @admin)
raise ActiveRecord::Forbidden if @provider_status.status == 0
- @failures = port
+ @import_result = @provider_status.import params[:date]
respond_to do |format|
format.html # show.html.erb
format.json { render :json => @failures.to_json() }
end
end
- def port
- exports = export_by('export', @provider_status, params[:date])
- return nil unless exports
- ProviderStatus.import @provider_status.provider.id, exports
- end
-
- def self.import pid, exports
- res = {}
+ def import date
+ import_result = nil
ProviderStatus.transaction do
- res[:licenses] = ProviderLicense.import pid, exports['licenses']
- raise ActiveRecord::Rollback if res[:licenses].any?
- res[:artists] = ProviderArtist.import pid, exports['artists']
- raise ActiveRecord::Rollback if res[:artists].any?
- res[:original_pictures] = ProviderOriginalPicture.import pid, exports['original_pictures'], exports['pictures']
- raise ActiveRecord::Rollback if res[:original_pictures][:original_pictures].any? or res[:original_pictures][:resource_pictures].any? or res[:original_pictures][:pictures].any?
+ import_result = self.licenses_import date
+ raise ActiveRecord::Rollback unless import_result.success?
+ import_result = self.artists_import date
+ raise ActiveRecord::Rollback unless import_result.success?
+ import_result = self.original_pictures_import date
+ raise ActiveRecord::Rollback unless import_result.success?
+ self.received_at = Time.now
+ self.save
end
- res
+ import_result
end
end
<h1><%= t('.title') %></h1>
<p id="notice"><%= notice %></p>
-<% if @failures == nil %>
- <h1>No Response</h1>
-<% elsif @failures[:licenses].any? %>
- <%= render 'licenses_errors', :failures => @failures[:licenses] %>
-<% elsif @failures[:artists].any? %>
- <%= render 'artists_errors', :failures => @failures[:artists] %>
-<% elsif @failures[:original_pictures][:original_pictures].any? %>
- <%= render 'original_pictures_errors', :failures => @failures[:original_pictures][:original_pictures] %>
-<% elsif @failures[:original_pictures][:pictures].any? %>
- <%= render 'pictures_errors', :failures => @failures[:original_pictures][:pictures] %>
-<% elsif @failures[:original_pictures][:resource_pictures].any? %>
- <%= render 'resource_pictures_errors', :failures => @failures[:original_pictures][:resource_pictures] %>
+<% if @import_result.response? %>
+ <% if @import_result.success? %>
+ <h2>
+ <%= t("provider_statuses.import.success") %>
+ </h2>
+ <% else %>
+ <%= render 'import_errors', :import_result => @import_result %>
+ <%= link_to t("provider_statuses.#{@import_result.action}.to_show"), provider_status_path(@provider_status) %>
+ <% end %>
<% else %>
- <h2>
- <%= t('provider_statuses.import.success') %>
- </h2>
+ <h1>No Response</h1>
<% end %>