Class: Nexo::DeleteRemoteResourceJob

Inherits:
BaseJob
  • Object
show all
Includes:
ApiClients
Defined in:
app/jobs/nexo/delete_remote_resource_job.rb

Overview

  • Removing/discarding Element’s

Instance Method Summary collapse

Instance Method Details

#perform(element) ⇒ Object

Once discarded, an Element is obsolete and cant be restored because even though some APIs may allow it, others may not.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/jobs/nexo/delete_remote_resource_job.rb', line 10

def perform(element)
  raise "element already discarded" if element.discarded?

  ServiceBuilder.instance.build_protocol_service(element.folder).remove(element)

  ElementService.new(element:).discard!

  # Fetch the removed/cancelled version
  FetchRemoteResourceJob.perform_now(element)
rescue Errors::ConflictingRemoteElementChange => e
  Nexo.logger.warn "    ConflictingRemoteElementChange for \#{element.to_gid}. \\\n\n    Performing now FetchRemoteResourceJob, so next attempt should succeed\n  STR\n\n  # NOTE: maybe this should be performed always directly in the first attempt?\n  FetchRemoteResourceJob.perform_now(element)\n\n  raise e\nend\n"