Class: Certynix::Resources::Assets

Inherits:
Object
  • Object
show all
Defined in:
lib/certynix/resources/assets.rb

Instance Method Summary collapse

Constructor Details

#initialize(http) ⇒ Assets

Returns a new instance of Assets.



6
7
8
# File 'lib/certynix/resources/assets.rb', line 6

def initialize(http)
  @http = http
end

Instance Method Details

#delete(id) ⇒ Object

Remove um asset (soft delete).



62
63
64
# File 'lib/certynix/resources/assets.rb', line 62

def delete(id)
  @http.delete("/v1/assets/#{URI.encode_www_form_component(id)}")
end

#get(id) ⇒ Object

Busca um asset por ID.



48
49
50
# File 'lib/certynix/resources/assets.rb', line 48

def get(id)
  @http.get("/v1/assets/#{URI.encode_www_form_component(id)}")
end

#list(**params) ⇒ Object

Lista assets com paginação automática via Enumerable.

Examples:

client.assets.list.each { |a| puts a[:id] }
client.assets.list.lazy.first(10)


57
58
59
# File 'lib/certynix/resources/assets.rb', line 57

def list(**params)
  Models::Paginator.new(http: @http, path: '/v1/assets', params: params)
end

#poll_jobs_status(job_ids:) ⇒ Hash

Consulta o status de múltiplos jobs de registro (1–50 IDs).

Parameters:

  • job_ids (Array<String>)

Returns:

  • (Hash)

    { results: […] }



43
44
45
# File 'lib/certynix/resources/assets.rb', line 43

def poll_jobs_status(job_ids:)
  @http.post('/v1/assets/jobs/status', { job_ids: job_ids })
end

#register(hash_sha256: nil, url: nil, file: nil, filename: nil, mime_type: nil, file_size: nil) ⇒ Object

Registra um asset por hash SHA-256, URL ou arquivo.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/certynix/resources/assets.rb', line 11

def register(hash_sha256: nil, url: nil, file: nil, filename: nil, mime_type: nil, file_size: nil)
  body = {}
  if file
    # Upload — usar multipart (simplificado: enviar como hash com file_data)
    body[:file] = file
    body[:filename] = filename if filename
    body[:mime_type] = mime_type if mime_type
  elsif hash_sha256
    body[:hash_sha256] = hash_sha256
    body[:filename]    = filename  if filename
    body[:mime_type]   = mime_type if mime_type
    body[:file_size]   = file_size if file_size
  elsif url
    body[:url]      = url
    body[:filename] = filename if filename
  end
  @http.post('/v1/assets', body)
end

#register_batch(assets:) ⇒ Object

Registra um lote de assets (até 250) de forma assíncrona.

Webhook-first (recomendado): configure o evento ‘asset.created` para receber notificações por asset assim que cada job completar.

Polling (fallback): use ‘poll_jobs_status` com os job_ids retornados.



36
37
38
# File 'lib/certynix/resources/assets.rb', line 36

def register_batch(assets:)
  @http.post('/v1/assets/batch', { assets: assets })
end