Module: Workxp::Restfulable::ClassMethods

Defined in:
lib/workxp/restfulable.rb

Instance Method Summary collapse

Instance Method Details

#restful_api(name) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/workxp/restfulable.rb', line 9

def restful_api(name)
  names = name.pluralize
  define_method "#{names}" do |*args|
    opts = args.first || Hash.new
    valid_token.get("/api/#{names}.json", params: opts, headers: domain_hash).parsed
  end
  
  define_method name do |id|
    valid_token.get("/api/tasks/#{id}.json", headers: domain_hash).parsed
  end
  
  define_method "create_#{name}" do |json|
    valid_token.post("/api/#{names}.json", body: json, headers: domain_hash).parsed
  end
  
  define_method "update_#{name}" do |id, json|
    valid_token.put("/api/#{names}/#{id}.json", body: json, headers: domain_hash).parsed
  end
  
  define_method "delete_#{name}" do |id|
    valid_token.delete("/api/#{names}/#{id}.json", headers: domain_hash).parsed
  end
end