Attask
A classe Attask::Client é a interface HTTP da Attask onde é possível fazer as requisições encontradas na https://developers.workfront.com/api-docs/#Actions.
Como usar
Configure os dados de acesso
# Exemplo:
Attask.configure do |config|
config.username = ENV['ATTASK_USERNAME']
config.password = ENV['ATTASK_PASSWORD']
end
Queries
Queries aceitas: eq
, ne
, gte
, lte
, isnull
, notnull
e contains
.
Exemplo de uma query usando between:
require_relative 'lib/attask/client.rb'
# Setando o objeto que quero` buscar
object = 'TASK'
# Montando a query
query = {
'plannedCompletionDate' => '$$TODAY-7',
'plannedCompletionDate_Range' => '$$TODAY',
'plannedCompletionDate_Mod' => 'between'
}
client = Attask::Client.new({ timeout: 120 })
client.search(object, query)
Fields
Para cada Objeto, existem uma quantidade de campos (fields
) que você pode obter a partir dele em seu retorno. Para saber os campos que cada objeto, entre neste https://developers.workfront.com/api-docs/api-explorer/. Lembrando que atualmente utilizamos a versão 6.0 da API da attask.
Exemplo utilizando o objeto DOCU
, solicitando o campo downloadURL
:
require_relative 'lib/attask/client.rb'
# Setando o objeto que quero buscar
object = 'DOCU'
# definindo os campos que eu quero que retorne
fields = ['downloadURL']
client = Attask::Client.new({ timeout: 120 })
client.search(object, { '$$LIMIT' => 2000 }, fields)
Upload de arquivos
require_relative 'lib/attask/client.rb'
client = Attask::Client.new
filename = 'teste.txt'
description = 'descricao'
object_code = 'TASK'
object_id = '586ab38f001b36bfbb586053760aec3d'
# Crie um handle
handle = client.handle("./#{filename}", 'text/plain')
# Com o handle em mãos, faca a requisição para envio de um documento
params = {
description: description,
docObjCode: object_code,
objID: object_id,
handle: handle,
name: filename
}.to_json
client.upload(params)