Class: Asana::Resources::OrganizationExport

Inherits:
OrganizationExportsBase show all
Defined in:
lib/asana/resources/organization_export.rb

Overview

An organization_export object represents a request to export the complete data of an Organization in JSON format.

To export an Organization using this API:

  • Create an ‘organization_export` [request](#create) and store the id that is returned.\

  • Request the ‘organization_export` every few minutes, until the `state` field contains ’finished’.\

  • Download the file located at the URL in the ‘download_url` field.

Exports can take a long time, from several minutes to a few hours for large Organizations.

Note: These endpoints are only available to [Service Accounts](/guide/help/premium/service-accounts) of an [Enterprise](/enterprise) Organization.

Instance Attribute Summary collapse

Class Method Summary collapse

Methods inherited from OrganizationExportsBase

create_organization_export, get_organization_export, inherited

Methods inherited from Resource

#initialize, #method_missing, #refresh, #respond_to_missing?, #to_h, #to_s

Methods included from ResponseHelper

#parse

Constructor Details

This class inherits a constructor from Asana::Resources::Resource

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Asana::Resources::Resource

Instance Attribute Details

#created_atObject (readonly)



23
24
25
# File 'lib/asana/resources/organization_export.rb', line 23

def created_at
  @created_at
end

#download_urlObject (readonly)



25
26
27
# File 'lib/asana/resources/organization_export.rb', line 25

def download_url
  @download_url
end

#gidObject (readonly)



21
22
23
# File 'lib/asana/resources/organization_export.rb', line 21

def gid
  @gid
end

#organizationObject (readonly)



29
30
31
# File 'lib/asana/resources/organization_export.rb', line 29

def organization
  @organization
end

#stateObject (readonly)



27
28
29
# File 'lib/asana/resources/organization_export.rb', line 27

def state
  @state
end

Class Method Details

.create(client, organization: required("organization"), options: {}, **data) ⇒ Object

This method creates a request to export an Organization. Asana will complete the export at some point after you create the request.

Parameters:

  • organization (Gid) (defaults to: required("organization"))

    Globally unique identifier for the workspace or organization.

  • options (Hash) (defaults to: {})

    the request I/O options.

  • data (Hash)

    the attributes to post.



54
55
56
57
# File 'lib/asana/resources/organization_export.rb', line 54

def create(client, organization: required("organization"), options: {}, **data)
  with_params = data.merge(organization: organization).reject { |_,v| v.nil? || Array(v).empty? }
  Resource.new(parse(client.post("/organization_exports", body: with_params, options: options)).first, client: client)
end

.find_by_id(client, id, options: {}) ⇒ Object

Returns details of a previously-requested Organization export.

Parameters:

  • id (Gid)

    Globally unique identifier for the Organization export.

  • options (Hash) (defaults to: {})

    the request I/O options.



42
43
44
45
# File 'lib/asana/resources/organization_export.rb', line 42

def find_by_id(client, id, options: {})

  self.new(parse(client.get("/organization_exports/#{id}", options: options)).first, client: client)
end

.plural_nameObject

Returns the plural name of the resource.



33
34
35
# File 'lib/asana/resources/organization_export.rb', line 33

def plural_name
  'organization_exports'
end