before_save do |r|
r.token = r.token.gsub(/\s/, '') if r.token
+ r.token = nil if r.token.blank?
end
def supply_default
ProviderStatus.find(:all, opt)
end
+ def self.approve_list page = 1, page_size = self.default_page_size
+ opt = {}
+ opt.merge!(ProviderStatus.list_opt)
+ opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
+ opt.merge!({:conditions => ['provider_statuses.token is not null'], :order => 'providers.name'})
+ ProviderStatus.find(:all, opt)
+ end
+
def self.list_opt
{:include => {:provider => {}} }
end
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
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