diff options
Diffstat (limited to 'lib/chef/chef_fs/file_system/organization_invites_entry.rb')
-rw-r--r-- | lib/chef/chef_fs/file_system/organization_invites_entry.rb | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/lib/chef/chef_fs/file_system/organization_invites_entry.rb b/lib/chef/chef_fs/file_system/organization_invites_entry.rb deleted file mode 100644 index 5df37085cb..0000000000 --- a/lib/chef/chef_fs/file_system/organization_invites_entry.rb +++ /dev/null @@ -1,59 +0,0 @@ -require 'chef/chef_fs/file_system/rest_list_entry' -require 'chef/chef_fs/data_handler/organization_invites_data_handler' -require 'chef/json_compat' - -class Chef - module ChefFS - module FileSystem - # /organizations/NAME/invitations.json - # read data from: - # - GET /organizations/NAME/association_requests - # write data to: - # - remove from list: DELETE /organizations/NAME/association_requests/id - # - add to list: POST /organizations/NAME/association_requests - class OrganizationInvitesEntry < RestListEntry - def initialize(name, parent, exists = nil) - super(name, parent) - @exists = exists - end - - def data_handler - Chef::ChefFS::DataHandler::OrganizationInvitesDataHandler.new - end - - # /organizations/foo/invites.json -> /organizations/foo/association_requests - def api_path - File.join(parent.api_path, 'association_requests') - end - - def exists? - parent.exists? - end - - def delete(recurse) - raise Chef::ChefFS::FileSystem::OperationNotAllowedError.new(:delete, self) - end - - def write(contents) - desired_invites = minimize_value(Chef::JSONCompat.parse(contents, :create_additions => false)) - actual_invites = _read_json.inject({}) { |h,val| h[val['username']] = val['id']; h } - invites = actual_invites.keys - (desired_invites - invites).each do |invite| - begin - rest.post(api_path, { 'user' => invite }) - rescue Net::HTTPServerException => e - if e.response.code == '409' - Chef::Log.warn("Could not invite #{invite} to organization #{org}: #{api_error_text(e.response)}") - else - raise - end - end - end - (invites - desired_invites).each do |invite| - rest.delete(File.join(api_path, actual_invites[invite])) - end - end - end - end - end -end |