Class: Meilisearch::Models::Task

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/meilisearch/models/task.rb

Constant Summary collapse

DEFAULT_TIMEOUT_MS =
5000
DEFAULT_INTERVAL_MS =
50

Class Attribute Summary collapse

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(metadata_hash, task_endpoint) ⇒ Task

Returns a new instance of Task.



30
31
32
33
34
35
# File 'lib/meilisearch/models/task.rb', line 30

def initialize(, task_endpoint)
  self. = 
  validate_required_fields! 

  @task_endpoint = task_endpoint
end

Class Attribute Details

.default_interval_msObject



18
19
20
# File 'lib/meilisearch/models/task.rb', line 18

def default_interval_ms
  @default_interval_ms || DEFAULT_INTERVAL_MS
end

.default_timeout_msObject



14
15
16
# File 'lib/meilisearch/models/task.rb', line 14

def default_timeout_ms
  @default_timeout_ms || DEFAULT_TIMEOUT_MS
end

Instance Attribute Details

#metadataObject

Returns the value of attribute metadata.



28
29
30
# File 'lib/meilisearch/models/task.rb', line 28

def 
  @metadata
end

Instance Method Details

#await(timeout_in_ms = self.class.default_timeout_ms, interval_in_ms = self.class.default_interval_ms) ⇒ Object



114
115
116
117
118
119
120
121
# File 'lib/meilisearch/models/task.rb', line 114

def await(
  timeout_in_ms = self.class.default_timeout_ms,
  interval_in_ms = self.class.default_interval_ms
)
  refresh with: @task_endpoint.wait_for_task(uid, timeout_in_ms, interval_in_ms) unless finished?

  self
end

#cancelObject



123
124
125
126
127
128
129
130
# File 'lib/meilisearch/models/task.rb', line 123

def cancel
  return true if status_cancelled?
  return false if status_finished?

  @task_endpoint.cancel_tasks(uids: [uid]).await

  cancelled?
end

#cancelled?Boolean

Returns:

  • (Boolean)


86
87
88
89
90
# File 'lib/meilisearch/models/task.rb', line 86

def cancelled?
  Utils.warn_on_unfinished_task(self) if unfinished?

  status_cancelled?
end

#deleteObject



132
133
134
135
136
137
138
# File 'lib/meilisearch/models/task.rb', line 132

def delete
  return false unless status_finished?

  @task_endpoint.delete_tasks(uids: [uid]).await

  deleted?
end

#deleted?Boolean

Returns:

  • (Boolean)


92
93
94
95
96
# File 'lib/meilisearch/models/task.rb', line 92

def deleted?
  refresh unless @deleted

  !!@deleted
end

#enqueued?Boolean

Returns:

  • (Boolean)


49
50
51
52
53
# File 'lib/meilisearch/models/task.rb', line 49

def enqueued?
  refresh if status_enqueued?

  status_enqueued?
end

#errorObject



98
99
100
# File 'lib/meilisearch/models/task.rb', line 98

def error
  @metadata['error']
end

#failed?Boolean Also known as: has_failed?

Returns:

  • (Boolean)


79
80
81
82
83
# File 'lib/meilisearch/models/task.rb', line 79

def failed?
  Utils.warn_on_unfinished_task(self) if unfinished?

  status == 'failed'
end

#finished?Boolean

Returns:

  • (Boolean)


68
69
70
# File 'lib/meilisearch/models/task.rb', line 68

def finished?
  !unfinished?
end

#processing?Boolean

Returns:

  • (Boolean)


55
56
57
58
59
# File 'lib/meilisearch/models/task.rb', line 55

def processing?
  refresh if status_processing? || status_enqueued?

  status_processing?
end

#refresh(with: nil) ⇒ Object



102
103
104
105
106
107
108
109
110
111
112
# File 'lib/meilisearch/models/task.rb', line 102

def refresh(with: nil)
  self. = with || @task_endpoint.task(uid)

  self
rescue Meilisearch::ApiError => e
  raise e unless e.http_code == 404

  @deleted = true

  self
end

#statusObject



45
46
47
# File 'lib/meilisearch/models/task.rb', line 45

def status
  @metadata['status']
end

#succeeded?Boolean Also known as: has_succeeded?

Returns:

  • (Boolean)


72
73
74
75
76
# File 'lib/meilisearch/models/task.rb', line 72

def succeeded?
  Utils.warn_on_unfinished_task(self) if unfinished?

  status == 'succeeded'
end

#to_hObject Also known as: to_hash



140
141
142
# File 'lib/meilisearch/models/task.rb', line 140

def to_h
  @metadata
end

#typeObject



41
42
43
# File 'lib/meilisearch/models/task.rb', line 41

def type
  @metadata['type']
end

#uidObject



37
38
39
# File 'lib/meilisearch/models/task.rb', line 37

def uid
  @metadata['taskUid']
end

#unfinished?Boolean Also known as: waiting?

Returns:

  • (Boolean)


61
62
63
64
65
# File 'lib/meilisearch/models/task.rb', line 61

def unfinished?
  refresh if status_processing? || status_enqueued?

  status_processing? || status_enqueued?
end