request.rb
1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# == Schema Information
#
# Table name: v_libras_requests
#
# id :integer not null, primary key
# status :string(255)
# service_type :string(255)
# owner_id :integer
# params :text
# response :text
# created_at :datetime
# updated_at :datetime
#
class VLibras::Request < ActiveRecord::Base
serialize :params
belongs_to :owner, :class => User
has_one :video, :class => VLibras::Video
validates :service_type,
presence: true,
inclusion: { in: %w(video-subtitle video), message: "%{value} is not a valid service type" }
validates :status,
presence: true,
inclusion: { in: %w(created processing error success), message: "%{value} is not a valid service type" }
before_save :default_values
default_scope { order('created_at DESC') }
def self.build_from_params(params, user)
request = self.new
request.service_type = params[:service]
request.owner = user
request.params = params[:params]
request
end
def perform_request
logger.debug '[VLibras::Request] Starting request'
ApiClient::Client.submit(self)
logger.debug '[VLibras::Request] Request done'
end
handle_asynchronously :perform_request
private
def default_values
self.status ||= 'created'
end
end