Class: Alfresco4r::DocumentUpload
Constant Summary
collapse
- EXPECTED_PARAMS =
[:siteid,:containerid,:uploaddirectory,:mime_type,:full_file_name,:filedata,:upload_url]
AbstractAlfrescoService::BOUNDARY
Instance Attribute Summary
#http, #options, #request, #uri
Instance Method Summary
collapse
#containerid, #filedata, #full_file_name, #get_object, #mime_type, #node, #post_object, #siteid, #uploaddirectory
Constructor Details
Returns a new instance of DocumentUpload.
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/alfresco4r/document_upload.rb', line 16
def initialize(options)
@options = options
return verify_params if verify_params.kind_of?(Alfresco4r::AlfError)
@siteid = siteid
@containerid = containerid
@uploaddirectory = uploaddirectory
@filedata = filedata
@mime_type = mime_type
@full_file_name = full_file_name
@form_params = Array.new
super
upload_document
end
|
Instance Method Details
#encode_file_data ⇒ Object
56
57
58
59
|
# File 'lib/alfresco4r/document_upload.rb', line 56
def encode_file_data
@form_params << ("\r\nContent-Disposition: form-data; name=\"filedata\"; filename=\"#{full_file_name}\"\r\n" + "Content-Transfer-Encoding: binary\r\n" + "Content-Type:" + "#{mime_type}" + "\r\n\r\n" + filedata + "\r\n")
@form_params << "--" + BOUNDARY + "--"
end
|
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/alfresco4r/document_upload.rb', line 45
def encode_form_data
parameters = { 'siteid' => siteid, 'containerid' => containerid, 'uploaddirectory' => uploaddirectory }
parameters.each do |key, value|
unless value.empty?
@form_params << "--" + BOUNDARY + "\r\n"
@form_params << "Content-Disposition: form-data; name=\"#{key}\"\r\n" + "\r\n" + "#{value}\r\n"
end
end
@form_params << "--" + BOUNDARY
end
|
#response ⇒ Object
84
85
86
|
# File 'lib/alfresco4r/document_upload.rb', line 84
def response
return @res_obj
end
|
#upload_document ⇒ Object
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
# File 'lib/alfresco4r/document_upload.rb', line 63
def upload_document
begin
encode_form_data
encode_file_data
@request.body= @form_params.join
@request["Content-Length"] = @request.body.length
@request["Content-Type"] = "multipart/form-data, boundary=" + BOUNDARY
res = Net::HTTP.new(@uri.host, @uri.port).start {|http| http.request(@request) }
case res
when Net::HTTPSuccess, Net::HTTPRedirection
json_obj = JSON.parse(res.body)
@res_obj = Alfresco4r::AlfSucess.new(json_obj["nodeRef"],json_obj["fileName"],json_obj["status"]["description"])
else
@res_obj = Alfresco4r::AlfError.new("Exception in response body #{res.inspect}")
end
rescue => e
@res_obj = Alfresco4r::AlfUnknownException.new(e.message)
end
end
|
#verify_params ⇒ Object
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/alfresco4r/document_upload.rb', line 30
def verify_params
begin
raise "Empty Parameter" if @options.empty?
missing_params = EXPECTED_PARAMS - @options.keys
unless missing_params.empty?
msg = "Expected paramerter #{missing_params} are missing. Expected parameters are siteid,containerid,uploaddirectory,mime_type,full_file_name,filedata."
raise "#{msg}"
end
rescue => e
@res_obj = Alfresco4r::AlfError.new(e.message)
end
end
|