appwrite 1.0.9 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +16 -0
  3. data/CHANGELOG.md +1 -0
  4. data/Gemfile +1 -0
  5. data/LICENSE +1 -1
  6. data/README.md +80 -7
  7. data/appwrite.gemspec +2 -2
  8. data/docs/examples/account/create-recovery.md +15 -0
  9. data/docs/examples/account/create-verification.md +15 -0
  10. data/docs/examples/account/delete-session.md +15 -0
  11. data/docs/examples/account/delete-sessions.md +15 -0
  12. data/docs/examples/account/delete.md +15 -0
  13. data/docs/examples/account/get-logs.md +15 -0
  14. data/docs/examples/account/get-prefs.md +15 -0
  15. data/docs/examples/account/get-sessions.md +15 -0
  16. data/docs/examples/account/get.md +15 -0
  17. data/docs/examples/account/update-email.md +15 -0
  18. data/docs/examples/account/update-name.md +15 -0
  19. data/docs/examples/account/update-password.md +15 -0
  20. data/docs/examples/account/update-prefs.md +15 -0
  21. data/docs/examples/account/update-recovery.md +15 -0
  22. data/docs/examples/account/update-verification.md +15 -0
  23. data/docs/examples/avatars/get-browser.md +15 -0
  24. data/docs/examples/avatars/get-credit-card.md +15 -0
  25. data/docs/examples/avatars/get-favicon.md +15 -0
  26. data/docs/examples/avatars/get-flag.md +15 -0
  27. data/docs/examples/avatars/get-image.md +15 -0
  28. data/docs/examples/avatars/get-initials.md +15 -0
  29. data/docs/examples/avatars/get-q-r.md +15 -0
  30. data/docs/examples/database/create-collection.md +15 -0
  31. data/docs/examples/database/create-document.md +15 -0
  32. data/docs/examples/database/delete-collection.md +15 -0
  33. data/docs/examples/database/delete-document.md +15 -0
  34. data/docs/examples/database/get-collection.md +15 -0
  35. data/docs/examples/database/get-document.md +15 -0
  36. data/docs/examples/database/list-collections.md +15 -0
  37. data/docs/examples/database/list-documents.md +15 -0
  38. data/docs/examples/database/update-collection.md +15 -0
  39. data/docs/examples/database/update-document.md +15 -0
  40. data/docs/examples/functions/create-execution.md +15 -0
  41. data/docs/examples/functions/create-tag.md +15 -0
  42. data/docs/examples/functions/create.md +15 -0
  43. data/docs/examples/functions/delete-tag.md +15 -0
  44. data/docs/examples/functions/delete.md +15 -0
  45. data/docs/examples/functions/get-execution.md +15 -0
  46. data/docs/examples/functions/get-tag.md +15 -0
  47. data/docs/examples/functions/get.md +15 -0
  48. data/docs/examples/functions/list-executions.md +15 -0
  49. data/docs/examples/functions/list-tags.md +15 -0
  50. data/docs/examples/functions/list.md +15 -0
  51. data/docs/examples/functions/update-tag.md +15 -0
  52. data/docs/examples/functions/update.md +15 -0
  53. data/docs/examples/health/get-anti-virus.md +15 -0
  54. data/docs/examples/health/get-cache.md +15 -0
  55. data/docs/examples/health/get-d-b.md +15 -0
  56. data/docs/examples/health/get-queue-certificates.md +15 -0
  57. data/docs/examples/health/get-queue-functions.md +15 -0
  58. data/docs/examples/health/get-queue-logs.md +15 -0
  59. data/docs/examples/health/get-queue-tasks.md +15 -0
  60. data/docs/examples/health/get-queue-usage.md +15 -0
  61. data/docs/examples/health/get-queue-webhooks.md +15 -0
  62. data/docs/examples/health/get-storage-local.md +15 -0
  63. data/docs/examples/health/get-time.md +15 -0
  64. data/docs/examples/health/get.md +15 -0
  65. data/docs/examples/locale/get-continents.md +15 -0
  66. data/docs/examples/locale/get-countries-e-u.md +15 -0
  67. data/docs/examples/locale/get-countries-phones.md +15 -0
  68. data/docs/examples/locale/get-countries.md +15 -0
  69. data/docs/examples/locale/get-currencies.md +15 -0
  70. data/docs/examples/locale/get-languages.md +15 -0
  71. data/docs/examples/locale/get.md +15 -0
  72. data/docs/examples/storage/create-file.md +15 -0
  73. data/docs/examples/storage/delete-file.md +15 -0
  74. data/docs/examples/storage/get-file-download.md +15 -0
  75. data/docs/examples/storage/get-file-preview.md +15 -0
  76. data/docs/examples/storage/get-file-view.md +15 -0
  77. data/docs/examples/storage/get-file.md +15 -0
  78. data/docs/examples/storage/list-files.md +15 -0
  79. data/docs/examples/storage/update-file.md +15 -0
  80. data/docs/examples/teams/create-membership.md +15 -0
  81. data/docs/examples/teams/create.md +15 -0
  82. data/docs/examples/teams/delete-membership.md +15 -0
  83. data/docs/examples/teams/delete.md +15 -0
  84. data/docs/examples/teams/get-memberships.md +15 -0
  85. data/docs/examples/teams/get.md +15 -0
  86. data/docs/examples/teams/list.md +15 -0
  87. data/docs/examples/teams/update-membership-roles.md +15 -0
  88. data/docs/examples/teams/update-membership-status.md +15 -0
  89. data/docs/examples/teams/update.md +15 -0
  90. data/docs/examples/users/create.md +15 -0
  91. data/docs/examples/users/delete-session.md +15 -0
  92. data/docs/examples/users/delete-sessions.md +15 -0
  93. data/docs/examples/users/delete.md +15 -0
  94. data/docs/examples/users/get-logs.md +15 -0
  95. data/docs/examples/users/get-prefs.md +15 -0
  96. data/docs/examples/users/get-sessions.md +15 -0
  97. data/docs/examples/users/get.md +15 -0
  98. data/docs/examples/users/list.md +15 -0
  99. data/docs/examples/users/update-prefs.md +15 -0
  100. data/docs/examples/users/update-status.md +15 -0
  101. data/lib/appwrite.rb +6 -0
  102. data/lib/appwrite/client.rb +43 -8
  103. data/lib/appwrite/exception.rb +14 -0
  104. data/lib/appwrite/file.rb +23 -0
  105. data/lib/appwrite/services/account.rb +190 -0
  106. data/lib/appwrite/services/avatars.rb +17 -1
  107. data/lib/appwrite/services/database.rb +20 -22
  108. data/lib/appwrite/services/functions.rb +195 -0
  109. data/lib/appwrite/services/health.rb +141 -0
  110. data/lib/appwrite/services/locale.rb +11 -0
  111. data/lib/appwrite/services/storage.rb +14 -10
  112. data/lib/appwrite/services/teams.rb +43 -10
  113. data/lib/appwrite/services/users.rb +22 -10
  114. metadata +105 -7
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ storage = Appwrite::Storage.new(client);
12
+
13
+ response = storage.update_file(file_id: '[FILE_ID]', read: [], write: []);
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ teams = Appwrite::Teams.new(client);
12
+
13
+ response = teams.create_membership(team_id: '[TEAM_ID]', email: 'email@example.com', roles: [], url: 'https://example.com');
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ teams = Appwrite::Teams.new(client);
12
+
13
+ response = teams.create(name: '[NAME]');
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ teams = Appwrite::Teams.new(client);
12
+
13
+ response = teams.delete_membership(team_id: '[TEAM_ID]', membership_id: '[MEMBERSHIP_ID]');
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ teams = Appwrite::Teams.new(client);
12
+
13
+ response = teams.delete(team_id: '[TEAM_ID]');
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ teams = Appwrite::Teams.new(client);
12
+
13
+ response = teams.get_memberships(team_id: '[TEAM_ID]');
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ teams = Appwrite::Teams.new(client);
12
+
13
+ response = teams.get(team_id: '[TEAM_ID]');
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ teams = Appwrite::Teams.new(client);
12
+
13
+ response = teams.list();
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ teams = Appwrite::Teams.new(client);
12
+
13
+ response = teams.update_membership_roles(team_id: '[TEAM_ID]', membership_id: '[MEMBERSHIP_ID]', roles: []);
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_j_w_t('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ...') # Your secret JSON Web Token
9
+ ;
10
+
11
+ teams = Appwrite::Teams.new(client);
12
+
13
+ response = teams.update_membership_status(team_id: '[TEAM_ID]', membership_id: '[MEMBERSHIP_ID]', user_id: '[USER_ID]', secret: '[SECRET]');
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ teams = Appwrite::Teams.new(client);
12
+
13
+ response = teams.update(team_id: '[TEAM_ID]', name: '[NAME]');
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ users = Appwrite::Users.new(client);
12
+
13
+ response = users.create(email: 'email@example.com', password: 'password');
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ users = Appwrite::Users.new(client);
12
+
13
+ response = users.delete_session(user_id: '[USER_ID]', session_id: '[SESSION_ID]');
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ users = Appwrite::Users.new(client);
12
+
13
+ response = users.delete_sessions(user_id: '[USER_ID]');
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ users = Appwrite::Users.new(client);
12
+
13
+ response = users.delete(user_id: '[USER_ID]');
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ users = Appwrite::Users.new(client);
12
+
13
+ response = users.get_logs(user_id: '[USER_ID]');
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ users = Appwrite::Users.new(client);
12
+
13
+ response = users.get_prefs(user_id: '[USER_ID]');
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ users = Appwrite::Users.new(client);
12
+
13
+ response = users.get_sessions(user_id: '[USER_ID]');
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ users = Appwrite::Users.new(client);
12
+
13
+ response = users.get(user_id: '[USER_ID]');
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ users = Appwrite::Users.new(client);
12
+
13
+ response = users.list();
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ users = Appwrite::Users.new(client);
12
+
13
+ response = users.update_prefs(user_id: '[USER_ID]', prefs: {});
14
+
15
+ puts response
@@ -0,0 +1,15 @@
1
+ require 'appwrite'
2
+
3
+ client = Appwrite::Client.new()
4
+
5
+ client
6
+ .set_endpoint('https://[HOSTNAME_OR_IP]/v1') # Your API Endpoint
7
+ .set_project('5df5acd0d48c2') # Your project ID
8
+ .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
+ ;
10
+
11
+ users = Appwrite::Users.new(client);
12
+
13
+ response = users.update_status(user_id: '[USER_ID]', status: 1);
14
+
15
+ puts response
data/lib/appwrite.rb CHANGED
@@ -1,10 +1,16 @@
1
1
  require 'net/http'
2
2
  require 'uri'
3
3
  require 'json'
4
+ require 'mime/types'
4
5
  require_relative 'appwrite/client'
5
6
  require_relative 'appwrite/service'
7
+ require_relative 'appwrite/exception'
8
+ require_relative 'appwrite/file'
9
+ require_relative 'appwrite/services/account'
6
10
  require_relative 'appwrite/services/avatars'
7
11
  require_relative 'appwrite/services/database'
12
+ require_relative 'appwrite/services/functions'
13
+ require_relative 'appwrite/services/health'
8
14
  require_relative 'appwrite/services/locale'
9
15
  require_relative 'appwrite/services/storage'
10
16
  require_relative 'appwrite/services/teams'
@@ -20,7 +20,8 @@ module Appwrite
20
20
  @headers = {
21
21
  'content-type' => '',
22
22
  'user-agent' => RUBY_PLATFORM + ':ruby-' + RUBY_VERSION,
23
- 'x-sdk-version' => 'appwrite:ruby:1.0.9'
23
+ 'x-sdk-version' => 'appwrite:ruby:2.1.0',
24
+ 'X-Appwrite-Response-Format' => '0.8.0'
24
25
  }
25
26
  @endpoint = 'https://appwrite.io/v1';
26
27
  end
@@ -37,14 +38,14 @@ module Appwrite
37
38
  return self
38
39
  end
39
40
 
40
- def set_locale(value)
41
- add_header('x-appwrite-locale', value)
41
+ def set_j_w_t(value)
42
+ add_header('x-appwrite-jwt', value)
42
43
 
43
44
  return self
44
45
  end
45
46
 
46
- def set_mode(value)
47
- add_header('x-appwrite-mode', value)
47
+ def set_locale(value)
48
+ add_header('x-appwrite-locale', value)
48
49
 
49
50
  return self
50
51
  end
@@ -78,11 +79,14 @@ module Appwrite
78
79
  payload = ''
79
80
 
80
81
  headers = @headers.merge(headers)
81
-
82
+ @BOUNDARY = "----A30#3ad1"
82
83
  if (method != METHOD_GET)
83
84
  case headers['content-type'][0, headers['content-type'].index(';') || headers['content-type'].length]
84
85
  when 'application/json'
85
86
  payload = params.to_json
87
+ when 'multipart/form-data'
88
+ payload = "--#{@BOUNDARY}\r\n" + encodeFormData(params)
89
+ headers['content-type'] = "multipart/form-data; boundary=#{@BOUNDARY}"
86
90
  else
87
91
  payload = encode(params)
88
92
  end
@@ -91,7 +95,7 @@ module Appwrite
91
95
  begin
92
96
  response = http.send_request(method.upcase, uri.request_uri, payload, headers)
93
97
  rescue => error
94
- raise 'Request Failed: ' + error.message
98
+ raise Appwrite::Exception.new(error.message)
95
99
  end
96
100
 
97
101
  # Handle Redirects
@@ -101,8 +105,39 @@ module Appwrite
101
105
 
102
106
  return fetch(method, uri, headers, {}, limit - 1)
103
107
  end
108
+
109
+ begin
110
+ res = JSON.parse(response.body);
111
+ rescue JSON::ParserError => e
112
+ raise Appwrite::Exception.new(response.body, response.code, nil)
113
+ end
104
114
 
105
- return JSON.parse(response.body);
115
+ if(response.code.to_i >= 400)
116
+ raise Appwrite::Exception.new(res['message'], res['status'], res)
117
+ end
118
+
119
+ return res;
120
+ end
121
+
122
+ def encodeFormData(value, key=nil)
123
+ case value
124
+ when Hash then value.map { |k,v| encodeFormData(v,k) }.join
125
+ when Array then value.map { |v| encodeFormData(v, "#{key}[]") }.join
126
+ when nil then ''
127
+ else
128
+ post_body = []
129
+ if(value.instance_of? File)
130
+ post_body << "Content-Disposition: form-data; name=\"#{key}\"; filename=\"#{value.name}\"\r\n"
131
+ post_body << "Content-Type: #{value.mimeType}\r\n\r\n"
132
+ post_body << value.content
133
+ post_body << "\r\n--#{@BOUNDARY}--\r\n"
134
+ else
135
+ post_body << "Content-Disposition: form-data; name=\"#{key}\"\r\n\r\n"
136
+ post_body << "#{value.to_s}"
137
+ post_body << "\r\n--#{@BOUNDARY}\r\n"
138
+ end
139
+ post_body.join
140
+ end
106
141
  end
107
142
 
108
143
  def encode(value, key = nil)