end
end
+ def self.replace_picture pid, attr
+ pc = Picture.head attr['original_picture_id'].to_i
+ return false unless pc
+ attr['picture_id'] = pc.id
+ end
+
def self.replace_original_picture pid, attr
pop = ProviderOriginalPicture.get_one pid, attr['original_picture_id'].to_i
if pop.original_picture
return providers_resource_picture_attr unless ProviderOriginalPicture.replace_original_picture(pid, providers_resource_picture_attr)
return providers_resource_picture_attr unless ProviderOriginalPicture.replace_artist(pid, providers_resource_picture_attr)
return providers_resource_picture_attr unless ProviderOriginalPicture.replace_license(pid, providers_resource_picture_attr)
+ return providers_resource_picture_attr unless ProviderOriginalPicture.replace_picture(pid, providers_resource_picture_attr)
prpid = providers_resource_picture_attr['id']
providers_resource_picture_attr.delete 'id'
picture_data = Base64.decode64 providers_resource_picture_attr['picture_data']
imager = PettanImager.load(picture_data)
return providers_resource_picture_attr unless imager
resource_picture = ProviderOriginalPicture.modify_resource_picture providers_resource_picture_attr
- return providers_resource_picture_attr unless resource_picture.store_picture_with_gif(imager)
return providers_resource_picture_attr unless resource_picture.save
+ return providers_resource_picture_attr unless resource_picture.store_picture_with_gif(imager)
nil
end
end
def self.import pid, original_pictures, pictures
- res = {:original_pictures => [], :pictures => [], :resource_pictures => []}
+ res = nil
ProviderOriginalPicture.transaction do
r = ProviderOriginalPicture.import_original_pictures(pid, original_pictures)
- res[:original_pictures] = r
- raise ActiveRecord::Rollback if r.any?
+ if r.any?
+ res = OriginalPictureImportResult.new r
+ raise ActiveRecord::Rollback
+ end
r = ProviderOriginalPicture.import_pictures(pid, pictures)
- res[:pictures] = r
- raise ActiveRecord::Rollback if r.any?
+ if r.any?
+ res = PictureImportResult.new r
+ raise ActiveRecord::Rollback
+ end
r = ProviderOriginalPicture.import_resource_pictures(pid, original_pictures)
- res[:resource_pictures] = r
- raise ActiveRecord::Rollback if r.any?
+ if r.any?
+ res = ResourcePictureImportResult.new r
+ raise ActiveRecord::Rollback
+ end
+ res = OriginalPictureImportResult.new []
end
res
end