Class: AzureMediaService::Service

Inherits:
Object
  • Object
show all
Defined in:
lib/azure_media_service/service.rb

Instance Method Summary collapse

Constructor Details

#initializeService

Returns a new instance of Service.



4
5
6
# File 'lib/azure_media_service/service.rb', line 4

def initialize
  @request = AzureMediaService.request
end

Instance Method Details

#assets(asset_id = nil) ⇒ Object

assets



9
10
11
12
# File 'lib/azure_media_service/service.rb', line 9

def assets(asset_id=nil)
  warn("DEPRECATION WARNING: Service#assets is deprecated. Use AzureMediaService::Asset.get() instead.")
  get('Assets', Asset, asset_id)
end

#create_access_policy(name: 'Policy', duration_minutes: 300, permission: 2) ⇒ Object

access policy create



25
26
27
28
29
30
31
32
33
34
# File 'lib/azure_media_service/service.rb', line 25

def create_access_policy(name:'Policy', duration_minutes:300, permission:2)
  warn("DEPRECATION WARNING: Service#create_access_policy is deprecated. Use AzureMediaService::AccessPolicy.create() instead.")
  post_body = {
    "Name" => name,
    "DurationInMinutes" => duration_minutes,
    "Permissions" => permission
  }
  res = @request.post("AccessPolicies", post_body)
  AccessPolicy.new(res["d"])
end

#create_asset(name) ⇒ Object

assets create



15
16
17
18
19
20
21
22
# File 'lib/azure_media_service/service.rb', line 15

def create_asset(name)
  warn("DEPRECATION WARNING: Service#create_asset is deprecated. Use AzureMediaService::Asset.create() instead.")
  post_body = {
    "Name" => name
  }
  res = @request.post("Assets", post_body)
  Asset.new(res["d"])
end

#create_encode_job(asset_id, encode_configuration) ⇒ Object



56
57
58
59
60
# File 'lib/azure_media_service/service.rb', line 56

def create_encode_job(asset_id, encode_configuration)
  warn("DEPRECATION WARNING: Service#create_encode_job is deprecated. Use AzureMediaService::Job.create() instead.")
  asset = assets(asset_id)
  asset.encode_job(encode_configuration)
end

#create_locator(policy_id:, asset_id:, type: 1) ⇒ Object

locator create



37
38
39
40
41
42
43
44
45
46
47
# File 'lib/azure_media_service/service.rb', line 37

def create_locator(policy_id:,asset_id:,type:1)
  warn("DEPRECATION WARNING: Service#create_locator is deprecated. Use AzureMediaService::Locator.create() instead.")
  post_body = {
    "AccessPolicyId" => policy_id,
    "AssetId" => asset_id,
    "Type" => type,
    "StartTime" => (Time.now - 5*60).gmtime.strftime('%Y-%m-%dT%H:%M:%SZ')
  }
  res = @request.post("Locators", post_body)
  Locator.new(res["d"])
end

#get(method, klass, id = nil) ⇒ Object



109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# File 'lib/azure_media_service/service.rb', line 109

def get(method, klass, id=nil)
  if id.nil?
    res = @request.get(method)
    results = []
    if res["d"]
      res["d"]["results"].each do |a|
        results << klass.new(a)
      end
    end
  else
    res = @request.get("#{method}('#{id}')")
    results = nil
    if res["d"]
      results = klass.new(res["d"])
    end
  end
  results
end

#get_protection_key(protection_key_id) ⇒ Object



100
101
102
103
104
105
106
107
# File 'lib/azure_media_service/service.rb', line 100

def get_protection_key(protection_key_id)
  res = @request.get("GetProtectionKey", ProtectionKeyId: "'#{protection_key_id}'")
  if res["d"]
    res["d"]["GetProtectionKey"]
  else
    raise MediaServiceError.new(res["error"]["message"]["value"])
  end
end

#get_protection_key_id(content_key_type) ⇒ Object



91
92
93
94
95
96
97
98
# File 'lib/azure_media_service/service.rb', line 91

def get_protection_key_id(content_key_type)
  res = @request.get("GetProtectionKeyId", contentKeyType: content_key_type)
  if res["d"]
    res["d"]["GetProtectionKeyId"]
  else
    raise MediaServiceError.new(res["error"]["message"]["value"])
  end
end

#jobs(job_id = nil) ⇒ Object



62
63
64
65
# File 'lib/azure_media_service/service.rb', line 62

def jobs(job_id=nil)
  warn("DEPRECATION WARNING: Service#jobs is deprecated. Use AzureMediaService::Job.get() instead.")
  get('Jobs', Job, job_id)
end

#media_processor_id_by_name(name) ⇒ Object



81
82
83
84
85
86
87
88
89
# File 'lib/azure_media_service/service.rb', line 81

def media_processor_id_by_name(name)
  res = @request.get('MediaProcessors')
  mp = res["d"]["results"].select {|v| 
    v["Name"] == 'Media Encoder Standard'
  }.sort{|a,b|
    b["Version"].to_i <=> a["Version"].to_i
  }.first
  MediaProcessor.new(mp)
end

#post(method, body) ⇒ Object



128
129
130
# File 'lib/azure_media_service/service.rb', line 128

def post(method, body)
  @request.post(method, body)
end

#publish(asset_id, expire_minutes = nil) ⇒ Object

publish asset



69
70
71
72
73
# File 'lib/azure_media_service/service.rb', line 69

def publish(asset_id, expire_minutes=nil)
  warn("DEPRECATION WARNING: Service#publish is deprecated. Use AzureMediaService::Asset#publish() instead.")
  asset = Asset.get(asset_id)
  asset.publish(expire_minutes)
end

#publish_url(asset_id) ⇒ Object



75
76
77
78
79
# File 'lib/azure_media_service/service.rb', line 75

def publish_url(asset_id)
  warn("DEPRECATION WARNING: Service#publish_url is deprecated. Use AzureMediaService::Asset#publish_url() instead.")
  asset = Asset.get(asset_id)
  asset.publish_url
end

#upload_media(filepath) ⇒ Object



49
50
51
52
53
54
# File 'lib/azure_media_service/service.rb', line 49

def upload_media(filepath)
  basename = File.basename(filepath, '.*')
  asset_name = "#{basename}-Source-#{Time.now.strftime('%Y%m%d%H%M%S')}"
  asset = Asset.create(asset_name)
  asset.upload(filepath)
end