OSDN Git Service

t#31077:add pd import
authoryasushiito <yas@pen-chan.jp>
Sun, 21 Apr 2013 00:27:11 +0000 (09:27 +0900)
committeryasushiito <yas@pen-chan.jp>
Sun, 21 Apr 2013 00:27:11 +0000 (09:27 +0900)
app/controllers/provider_statuses_controller.rb
app/models/provider_status.rb
app/views/provider_statuses/import.html.erb

index d1b321e..fe7c935 100644 (file)
@@ -99,7 +99,7 @@ class ProviderStatusesController < ApplicationController
   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() }
index f1973c7..9f44c2a 100644 (file)
@@ -185,23 +185,19 @@ class ProviderStatus < ActiveRecord::Base
     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
index 2f38278..dc3fa49 100644 (file)
@@ -1,20 +1,15 @@
 <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 %>