Class: Lfs::FinalizeUploadService
- Inherits:
-
Object
- Object
- Lfs::FinalizeUploadService
- Defined in:
- app/services/lfs/finalize_upload_service.rb
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(oid:, size:, uploaded_file:, project:, repository_type:) ⇒ FinalizeUploadService
constructor
A new instance of FinalizeUploadService.
Constructor Details
#initialize(oid:, size:, uploaded_file:, project:, repository_type:) ⇒ FinalizeUploadService
Returns a new instance of FinalizeUploadService.
5 6 7 8 9 10 11 |
# File 'app/services/lfs/finalize_upload_service.rb', line 5 def initialize(oid:, size:, uploaded_file:, project:, repository_type:) @oid = oid @size = size @uploaded_file = uploaded_file @project = project @repository_type = repository_type end |
Instance Method Details
#execute ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/services/lfs/finalize_upload_service.rb', line 13 def execute return service_response_error(:unprocessable_entity, 'Unprocessable entity') unless uploaded_file return service_response_error(:invalid_path, 'Invalid path') unless uploaded_file.is_a?(UploadedFile) if size != uploaded_file.size || oid != uploaded_file.sha256 return service_response_error(:invalid_uploaded_file, 'SHA256 or size mismatch') end ServiceResponse.success if store_file! rescue ActiveRecord::RecordInvalid service_response_error(:invalid_record, 'Invalid record') rescue ObjectStorage::RemoteStoreError service_response_error(:remote_store_error, 'Remote store error') end |