class AlexaSkillsDev
Attributes
vendor_id[R]
Public Class Methods
new(accesskey, url: 'https://api.amazonalexa.com', debug: false)
click to toggle source
# File lib/alexa_skillsdev.rb, line 22 def initialize(accesskey, url: 'https://api.amazonalexa.com', debug: false) @accesskey, @url_base, @debug = accesskey, url, debug end
Public Instance Methods
create_skill(obj)
click to toggle source
# File lib/alexa_skillsdev.rb, line 28 def create_skill(obj) if obj['vendorId'].nil? or obj['vendorId'].empty? then obj['vendorId'] = vendor_id end post "/v1/skills", obj end
delete_skill(name=nil, id: nil)
click to toggle source
# File lib/alexa_skillsdev.rb, line 38 def delete_skill(name=nil, id: nil) skill_id = name ? skill(name)[:skillId] : id delete "/v1/skills/#{skill_id}/" end
list()
click to toggle source
list skills by name
# File lib/alexa_skillsdev.rb, line 48 def list() self.skills[:skills].map {|x| x[:nameByLocale].to_a[0].last} end
manifest(name)
click to toggle source
# File lib/alexa_skillsdev.rb, line 52 def manifest(name) r = skill(name) get r[:_links][:self][:href], symbolize: false end
model(name=nil, id: nil, stage: 'development', locale: nil)
click to toggle source
# File lib/alexa_skillsdev.rb, line 59 def model(name=nil, id: nil, stage: 'development', locale: nil) if name then r = skill(name) id, stage, locale = r[:skillId], r[:stage], r[:nameByLocale].keys.first end puts "id: %s stage: %s locale: %s" % [id, stage, locale] if @debug get "/v1/skills/#{id}/stages/#{stage}/interactionModel/locales/#{locale}", smybolize: false end
Also aliased as: interaction_model
skill(name=nil, id: nil, stage: 'development', locale: nil)
click to toggle source
# File lib/alexa_skillsdev.rb, line 93 def skill(name=nil, id: nil, stage: 'development', locale: nil) if name then r = self.skills()[:skills].select do |x| if locale then x[:nameByLocale][locale].downcase == name.downcase else x[:nameByLocale].to_a[0].last.downcase == name.downcase end end return r.first if r.any? end get "/v1/skills/#{id}/stages/#{stage}/manifest" end
skill_id(name)
click to toggle source
# File lib/alexa_skillsdev.rb, line 114 def skill_id(name) skill(name)[:skillId] end
skills(vendor_id=@vendor_id)
click to toggle source
# File lib/alexa_skillsdev.rb, line 119 def skills(vendor_id=@vendor_id) vendor_id ||= vendor[:id] get "/v1/skills?vendorId=#{vendor_id}" end
status(name)
click to toggle source
# File lib/alexa_skillsdev.rb, line 126 def status(name) r = skill(name) #get "/v1/skills/#{r[:skillId]}/status?resource=name1&resource=name2" get "/v1/skills/#{r[:skillId]}/status" end
update_manifest(skill_name, manifest)
click to toggle source
# File lib/alexa_skillsdev.rb, line 159 def update_manifest(skill_name, manifest) update_skill skill_name, manifest: manifest end
update_model(name=nil, model2=nil, id: nil, stage: 'development', locale: nil, model: model2)
click to toggle source
# File lib/alexa_skillsdev.rb, line 134 def update_model(name=nil, model2=nil, id: nil, stage: 'development', locale: nil, model: model2) if name then r = skill(name) id, stage, locale = r[:skillId], r[:stage], r[:nameByLocale].keys.first end put "/v1/skills/#{id}/stages/#{stage}/interactionModel/locales/#{locale}", model end
update_skill(name=nil, id: nil, stage: 'development', locale: nil, manifest: obj)
click to toggle source
# File lib/alexa_skillsdev.rb, line 147 def update_skill(name=nil, id: nil, stage: 'development', locale: nil, manifest: obj) if name then r = skill(name) id, stage, locale = r[:skillId], r[:stage], r[:nameByLocale].keys.first end put "/v1/skills/#{id}/stages/#{stage}/manifest", manifest end
vendor()
click to toggle source
# File lib/alexa_skillsdev.rb, line 74 def vendor() h = self.vendors()[:vendors].first @vendor_id = h[:id] h end
vendors()
click to toggle source
# File lib/alexa_skillsdev.rb, line 87 def vendors() get '/v1/vendors' end
Protected Instance Methods
delete(uri)
click to toggle source
# File lib/alexa_skillsdev.rb, line 166 def delete(uri) r = RestClient.delete(@url_base + uri, headers={:Authorization => @accesskey}) JSON.parse r.body, symbolize_names: true end
get(uri, symbolize: true)
click to toggle source
# File lib/alexa_skillsdev.rb, line 175 def get(uri, symbolize: true) r = RestClient.get(@url_base + uri, \ headers={'Authorization' => @accesskey}) JSON.parse r.body, symbolize_names: symbolize end
post(uri, h)
click to toggle source
# File lib/alexa_skillsdev.rb, line 183 def post(uri, h) r = RestClient.post(@url_base + uri, h.to_json, headers={:Authorization => @accesskey, content_type: :json, accept: :json}) JSON.parse r.body, symbolize_names: true end
put(uri, h)
click to toggle source
# File lib/alexa_skillsdev.rb, line 192 def put(uri, h) r = RestClient.put(@url_base + uri, h.to_json, headers={:Authorization => @accesskey, content_type: :json, accept: :json}) JSON.parse r.body, symbolize_names: true end