X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fmodels%2Fprovider_status.rb;h=f49a98edc0475d04e6280afa02d66245ab90eb67;hb=0ead3a286b925e86845cf8211982a7985e522813;hp=e9dc46d30f318f78c49690b83db6463b4c4b91b8;hpb=f37a2be1c35736f9ae257bde83b4123dbe2ebd55;p=pettanr%2Fpettanr.git diff --git a/app/models/provider_status.rb b/app/models/provider_status.rb index e9dc46d3..f49a98ed 100644 --- a/app/models/provider_status.rb +++ b/app/models/provider_status.rb @@ -123,12 +123,19 @@ class ProviderStatus < ActiveRecord::Base end def ymd_to_time ymd_str - return nil if ymd_str.blank? date = nil - begin - date = Time.parse(ymd_str[0..3] + '/' + ymd_str[4..5] + '/' + ymd_str[6..7]) - rescue - date = nil + if ymd_str.blank? + date = if self.received_at + self.received_at + else + nil + end + else + begin + date = Time.parse(ymd_str[0..3] + '/' + ymd_str[4..5] + '/' + ymd_str[6..7]) + rescue + date = nil + end end date end @@ -159,41 +166,56 @@ class ProviderStatus < ActiveRecord::Base def licenses_import date licenses = self.export_by('licenses_export', date) - return nil unless licenses - ProviderLicense.import self.provider.id, licenses + if licenses + ProviderLicense.import self.provider.id, licenses + else + LicenseImportResult.new nil + end end def artists_import date artists = self.export_by('artists_export', date) - return nil unless artists - ProviderArtist.import self.provider.id, artists + if artists + ProviderArtist.import self.provider.id, artists + else + ArtistImportResult.new nil + end end def original_pictures_import date original_pictures = self.export_by('original_pictures_export', date) - return nil unless original_pictures pictures = self.export_by('pictures_export', date) - return nil unless pictures - ProviderOriginalPicture.import self.provider.id, original_pictures, pictures - end - - def port - exports = export_by('export', @provider_status, params[:date]) - return nil unless exports - ProviderStatus.import @provider_status.provider.id, exports + if original_pictures and pictures + ProviderOriginalPicture.import self.provider.id, original_pictures, pictures + else + OriginalPictureImportResult.new nil + end 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 + def self.import_all date = nil + failures = {} + ProviderStatus.approve_list.each do |provider_status| + import_result = provider_status.import date + next if import_result.success? + failures[provider_status.provider.name] = import_result + end + failures.each do |name, import_result| + puts name + end + end end