Class: GlobusClient::Endpoint
- Inherits:
-
Object
- Object
- GlobusClient::Endpoint
- Defined in:
- lib/globus_client/endpoint.rb
Overview
The namespace for endpoint API operations
Defined Under Namespace
Classes: FileInfo
Constant Summary collapse
- PATH_SEPARATOR =
rubocop:disable Metrics/ClassLength
'/'
Instance Method Summary collapse
-
#allow_writes ⇒ Object
Assign a user read/write permissions for a directory docs.globus.org/api/transfer/acl/#rest_access_create.
-
#delete_access_rule ⇒ Object
Delete the access rule docs.globus.org/api/transfer/acl/#delete_access_rule.
-
#disallow_writes ⇒ Object
Assign a user read-only permissions for a directory docs.globus.org/api/transfer/acl/#rest_access_create.
- #exists? ⇒ Boolean
- #has_files? ⇒ Boolean
-
#initialize(path:, user_id:, notify_email: true) ⇒ Endpoint
constructor
A new instance of Endpoint.
- #list_files ⇒ Object
-
#mkdir ⇒ Object
Create a directory docs.globus.org/api/transfer/file_operations/#make_directory.
-
#rename(new_path:) ⇒ Object
Renames a directory docs.globus.org/api/transfer/file_operations/#rename.
Constructor Details
#initialize(path:, user_id:, notify_email: true) ⇒ Endpoint
Returns a new instance of Endpoint.
13 14 15 16 17 |
# File 'lib/globus_client/endpoint.rb', line 13 def initialize(path:, user_id:, notify_email: true) @user_id = user_id @path = path @notify_email = notify_email end |
Instance Method Details
#allow_writes ⇒ Object
Assign a user read/write permissions for a directory docs.globus.org/api/transfer/acl/#rest_access_create
45 46 47 |
# File 'lib/globus_client/endpoint.rb', line 45 def allow_writes access_request(permissions: 'rw') end |
#delete_access_rule ⇒ Object
Delete the access rule docs.globus.org/api/transfer/acl/#delete_access_rule
55 56 57 58 59 60 61 62 |
# File 'lib/globus_client/endpoint.rb', line 55 def delete_access_rule raise GlobusClient::AccessRuleNotFound, "Access rule not found for #{path}" unless access_rule_id GlobusClient.instance.delete( base_url: GlobusClient.config.transfer_url, path: "#{access_path}/#{access_rule_id}" ) end |
#disallow_writes ⇒ Object
Assign a user read-only permissions for a directory docs.globus.org/api/transfer/acl/#rest_access_create
50 51 52 |
# File 'lib/globus_client/endpoint.rb', line 50 def disallow_writes update_access_request(permissions: 'r') end |
#exists? ⇒ Boolean
75 76 77 78 79 80 81 82 83 84 |
# File 'lib/globus_client/endpoint.rb', line 75 def exists? GlobusClient.instance.get( base_url: GlobusClient.config.transfer_url, path: "#{transfer_path}/stat", params: { path: } ) true rescue GlobusClient::ResourceNotFound false end |
#has_files? ⇒ Boolean
19 20 21 |
# File 'lib/globus_client/endpoint.rb', line 19 def has_files? ls_path(full_path, [], return_presence: true) end |
#list_files ⇒ Object
23 24 25 26 27 |
# File 'lib/globus_client/endpoint.rb', line 23 def list_files ls_path(full_path, []).tap do |files| yield files if block_given? end end |
#mkdir ⇒ Object
Create a directory docs.globus.org/api/transfer/file_operations/#make_directory
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/globus_client/endpoint.rb', line 30 def mkdir # transfer API does not support recursive directory creation paths.each do |path| GlobusClient.instance.post( base_url: GlobusClient.config.transfer_url, path: "#{transfer_path}/mkdir", body: { DATA_TYPE: 'mkdir', path: }, expected_response: lambda { |resp| resp.status == 502 && JSON.parse(resp.body)['code'] == 'ExternalError.MkdirFailed.Exists' } ) end end |
#rename(new_path:) ⇒ Object
Renames a directory docs.globus.org/api/transfer/file_operations/#rename
65 66 67 68 69 70 71 |
# File 'lib/globus_client/endpoint.rb', line 65 def rename(new_path:) GlobusClient.instance.post( base_url: GlobusClient.config.transfer_url, path: "#{transfer_path}/rename", body: { DATA_TYPE: 'rename', old_path: path, new_path: } ) end |