Class OpenWFE::RestClient
In: lib/openwfe/orest/restclient.rb
Parent: Object

A basic REST client for OpenWFE services (control and worklist)

Methods

close   decode   get   new   post  

Attributes

host  [R] 
port  [R] 
resource  [R] 
session_id  [R] 

Public Class methods

[Source]

    # File lib/openwfe/orest/restclient.rb, line 55
55:         def initialize (url, username, password)
56: 
57:             split_url(url)
58:             @username = username
59: 
60:             connect(password)
61:         end

Public Instance methods

Closes this REST client

[Source]

    # File lib/openwfe/orest/restclient.rb, line 66
66:         def close
67:             get('endWorkSession', nil, {})
68:         end

Protected Instance methods

[Source]

    # File lib/openwfe/orest/restclient.rb, line 72
72:             def decode (reply)
73: 
74:                 raise "Error : #{reply.code} - #{reply.body}" \
75:                     if reply.code != "200"
76: 
77:                 begin
78:                     xml = REXML::Document.new reply.body
79:                     OpenWFE::XmlCodec::decode xml.root
80:                 rescue Exception => e
81:                     if $DEBUG
82:                         #puts
83:                         #puts e.to_s
84:                         puts
85:                         puts "failed to decode reply :"
86:                         puts
87:                         puts reply.body
88:                         puts
89:                     end
90:                     raise e
91:                 end
92:             end

GETs a REST operation

[Source]

     # File lib/openwfe/orest/restclient.rb, line 97
 97:             def get (action, subResourceName, params)
 98: 
 99:                 @httpclient.get(
100:                     compute_resource(action, subResourceName, params))
101:             end

POSTs a REST operation

[Source]

     # File lib/openwfe/orest/restclient.rb, line 106
106:             def post (action, subResourceName, params, data)
107: 
108:                 @httpclient.post(
109:                     compute_resource(action, subResourceName, params), 
110:                     data.to_s)
111:             end

[Validate]