appwrite 1.0.11 → 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +16 -0
  3. data/Gemfile +1 -0
  4. data/LICENSE +1 -1
  5. data/README.md +72 -5
  6. data/appwrite.gemspec +3 -5
  7. data/docs/examples/account/create-recovery.md +15 -0
  8. data/docs/examples/account/create-verification.md +15 -0
  9. data/docs/examples/account/delete-session.md +15 -0
  10. data/docs/examples/account/delete-sessions.md +15 -0
  11. data/docs/examples/account/delete.md +15 -0
  12. data/docs/examples/account/get-logs.md +15 -0
  13. data/docs/examples/account/get-prefs.md +15 -0
  14. data/docs/examples/account/get-sessions.md +15 -0
  15. data/docs/examples/account/get.md +15 -0
  16. data/docs/examples/account/update-email.md +15 -0
  17. data/docs/examples/account/update-name.md +15 -0
  18. data/docs/examples/account/update-password.md +15 -0
  19. data/docs/examples/account/update-prefs.md +15 -0
  20. data/docs/examples/account/update-recovery.md +15 -0
  21. data/docs/examples/account/update-verification.md +15 -0
  22. data/docs/examples/{database/get-collection-logs.md → avatars/get-initials.md} +2 -2
  23. data/docs/examples/database/create-document.md +1 -1
  24. data/docs/examples/database/update-collection.md +1 -1
  25. data/docs/examples/database/update-document.md +1 -1
  26. data/docs/examples/functions/create-execution.md +15 -0
  27. data/docs/examples/functions/create-tag.md +15 -0
  28. data/docs/examples/functions/create.md +15 -0
  29. data/docs/examples/functions/delete-tag.md +15 -0
  30. data/docs/examples/functions/delete.md +15 -0
  31. data/docs/examples/functions/get-execution.md +15 -0
  32. data/docs/examples/functions/get-tag.md +15 -0
  33. data/docs/examples/functions/get.md +15 -0
  34. data/docs/examples/functions/list-executions.md +15 -0
  35. data/docs/examples/functions/list-tags.md +15 -0
  36. data/docs/examples/functions/list.md +15 -0
  37. data/docs/examples/functions/update-tag.md +15 -0
  38. data/docs/examples/functions/update.md +15 -0
  39. data/docs/examples/locale/get-languages.md +15 -0
  40. data/docs/examples/storage/create-file.md +1 -1
  41. data/docs/examples/teams/delete-membership.md +1 -1
  42. data/docs/examples/teams/update-membership-roles.md +15 -0
  43. data/docs/examples/teams/update-membership-status.md +15 -0
  44. data/docs/examples/users/delete.md +15 -0
  45. data/docs/examples/users/update-status.md +1 -1
  46. data/lib/appwrite.rb +5 -0
  47. data/lib/appwrite/client.rb +46 -5
  48. data/lib/appwrite/exception.rb +14 -0
  49. data/lib/appwrite/file.rb +23 -0
  50. data/lib/appwrite/services/account.rb +280 -0
  51. data/lib/appwrite/services/avatars.rb +133 -34
  52. data/lib/appwrite/services/database.rb +199 -67
  53. data/lib/appwrite/services/functions.rb +357 -0
  54. data/lib/appwrite/services/health.rb +12 -24
  55. data/lib/appwrite/services/locale.rb +16 -12
  56. data/lib/appwrite/services/storage.rb +124 -35
  57. data/lib/appwrite/services/teams.rb +187 -34
  58. data/lib/appwrite/services/users.rb +115 -31
  59. metadata +44 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3467bd38994ec4d52513f365ac2f0965c0e7d460f4bdf0889d02ee6f789a18b0
4
- data.tar.gz: d14dea1f9687bbb6ed58a361814790d076260b3d004627b0ab5a8735fde9d7c8
3
+ metadata.gz: 5f8ff2795d0cc0f1baea07252be2491778be3f5a3cef6ec3ab2e8609fef6a9aa
4
+ data.tar.gz: 21e9ade2dcb732c4edef4034cb0d339e82f115f14d7e9a24e77419097574bcec
5
5
  SHA512:
6
- metadata.gz: '08a910898454ceb670cea969d74fcc4fa13eadc2fbcd2ce43deea6f9302e21f42a80ddff1c99d7542562d2058a14742307e2eeaff04b1235362b5914808f2002'
7
- data.tar.gz: 2a336f8d31273a5f94e4df3a4fc305675cb856a0cdcc5c1ad4907fb00d6316a6a9a23b20d57ab77fea2ebfa560c6b882ca6b6f36835a117631d6f4854d8b29ad
6
+ metadata.gz: 444fb0922c332ff21bb3e5bf800ed5bd94a78b874c64dd91ad870fc7a5b2a6260550f82b9c386459ee31e309734b997965de1c554f9e66ca58fa4fdc3dc76809
7
+ data.tar.gz: b3764a2d140cbd594cfe6fb9f88c7319d12df46451da1a1c5663b281feb512cd67f124e9c2cb98187ea7047387d92d702fb1a93c5b86cfd491d095e723ac089a
data/.travis.yml ADDED
@@ -0,0 +1,16 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 2.7
5
+
6
+ jobs:
7
+ include:
8
+ - stage: ruby gems release
9
+ rvm: "2.7"
10
+ script: echo "Deploying to ruby gems ..."
11
+ deploy:
12
+ provider: rubygems
13
+ api_key: $RUBYGEMS_TOKEN
14
+ gem: appwrite
15
+ on:
16
+ tags: true
data/Gemfile CHANGED
@@ -1,3 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ gem 'mime-types', '~> 3.1'
3
4
  gemspec
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2019 Appwrite (https://appwrite.io) and individual contributors.
1
+ Copyright (c) 2021 Appwrite (https://appwrite.io) and individual contributors.
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
data/README.md CHANGED
@@ -1,16 +1,16 @@
1
1
  # Appwrite Ruby SDK
2
2
 
3
- ![License](https://img.shields.io/github/license/appwrite/sdk-for-ruby.svg?v=1)
4
- ![Version](https://img.shields.io/badge/api%20version-0.6.1-blue.svg?v=1)
3
+ ![License](https://img.shields.io/github/license/appwrite/sdk-for-ruby.svg?style=flat-square)
4
+ ![Version](https://img.shields.io/badge/api%20version-0.8.0-blue.svg?style=flat-square)
5
+ [![Twitter Account](https://img.shields.io/twitter/follow/appwrite_io?color=00acee&label=twitter&style=flat-square)](https://twitter.com/appwrite_io)
6
+ [![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord)
5
7
 
6
- **This SDK is compatible with Appwrite server version 0.6.1. For older versions, please check previous releases.**
8
+ **This SDK is compatible with Appwrite server version 0.8.x. For older versions, please check [previous releases](https://github.com/appwrite/sdk-for-ruby/releases).**
7
9
 
8
10
  Appwrite is an open-source backend as a service server that abstract and simplify complex and repetitive development tasks behind a very simple to use REST API. Appwrite aims to help you develop your apps faster and in a more secure way.
9
11
  Use the Ruby SDK to integrate your app with the Appwrite server to easily start interacting with all of Appwrite backend APIs and tools.
10
12
  For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)
11
13
 
12
-
13
-
14
14
  ![Appwrite](https://appwrite.io/images/github.png)
15
15
 
16
16
  ## Installation
@@ -21,6 +21,73 @@ To install via [Gem](https://rubygems.org/):
21
21
  gem install appwrite --save
22
22
  ```
23
23
 
24
+
25
+ ## Getting Started
26
+
27
+ ### Init your SDK
28
+ Initialize your SDK code with your project ID which can be found in your project settings page and your new API secret Key from project's API keys section.
29
+
30
+ ```ruby
31
+ require 'appwrite'
32
+
33
+ client = Appwrite::Client.new()
34
+
35
+ client
36
+ .set_endpoint(ENV["APPWRITE_ENDPOINT"]) # Your API Endpoint
37
+ .set_project(ENV["APPWRITE_PROJECT"]) # Your project ID
38
+ .set_key(ENV["APPWRITE_SECRET"]) # Your secret API key
39
+ .setSelfSigned() # Use only on dev mode with a self-signed SSL cert
40
+ ;
41
+ ```
42
+
43
+ ### Make Your First Request
44
+ Once your SDK object is set, create any of the Appwrite service objects and choose any request to send. Full documentation for any service method you would like to use can be found in your SDK documentation or in the API References section.
45
+
46
+ ```ruby
47
+ users = Appwrite::Users.new(client);
48
+
49
+ result = users.create(email: 'email@example.com', password: 'password');
50
+ ```
51
+
52
+ ### Full Example
53
+ ```ruby
54
+ require 'appwrite'
55
+
56
+ client = Appwrite::Client.new()
57
+
58
+ client
59
+ .set_endpoint(ENV["APPWRITE_ENDPOINT"]) # Your API Endpoint
60
+ .set_project(ENV["APPWRITE_PROJECT"]) # Your project ID
61
+ .set_key(ENV["APPWRITE_SECRET"]) # Your secret API key
62
+ .setSelfSigned() # Use only on dev mode with a self-signed SSL cert
63
+ ;
64
+
65
+ users = Appwrite::Users.new(client);
66
+
67
+ result = users.create(email: 'email@example.com', password: 'password');
68
+ ```
69
+
70
+ ### Error Handling
71
+ The Appwrite Ruby SDK raises `Appwrite::Exception` object with `message`, `code` and `response` properties. You can handle any errors by catching `Appwrite::Exception` and present the `message` to the user or handle it yourself based on the provided error information. Below is an example.
72
+
73
+ ```ruby
74
+ users = Appwrite::Users.new(client);
75
+
76
+ begin
77
+ result = users.create(email: 'email@example.com', password: 'password');
78
+ rescue Appwrite::Exception => error
79
+ puts error.message
80
+ end
81
+ ```
82
+
83
+ ### Learn more
84
+ You can use followng resources to learn more and get help
85
+ - 🚀 [Getting Started Tutorial](https://appwrite.io/docs/getting-started-for-server)
86
+ - 📜 [Appwrite Docs](https://appwrite.io/docs)
87
+ - 💬 [Discord Community](https://appwrite.io/discord)
88
+ - 🚂 [Appwrite Ruby Playground](https://github.com/appwrite/playground-for-ruby)
89
+
90
+
24
91
  ## Contribution
25
92
 
26
93
  This library is auto-generated by Appwrite custom [SDK Generator](https://github.com/appwrite/sdk-generator). To learn more about how you can help us improve this SDK, please check the [contribution guide](https://github.com/appwrite/sdk-generator/blob/master/CONTRIBUTING.md) before sending a pull-request.
data/appwrite.gemspec CHANGED
@@ -1,13 +1,11 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'appwrite'
4
- s.version = '1.0.11'
5
- s.summary = "Appwrite is an open-source backend as a service server that abstract and simplify complex and repetitive development tasks behind a very simple to use REST API. Appwrite aims to help you develop your apps faster and in a more secure way.
6
- Use the Ruby SDK to integrate your app with the Appwrite server to easily start interacting with all of Appwrite backend APIs and tools.
7
- For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)"
4
+ s.version = '2.1.2'
5
+ s.summary = "Appwrite is an open-source self-hosted backend server that abstract and simplify complex and repetitive development tasks behind a very simple REST API"
8
6
  s.author = 'Appwrite Team'
9
7
  s.homepage = 'https://appwrite.io/support'
10
- s.email = 'team@localhost.test'
8
+ s.email = 'team@appwrite.io'
11
9
  s.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
12
10
 
13
11
  end
@@ -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
+ account = Appwrite::Account.new(client);
12
+
13
+ response = account.create_recovery(email: 'email@example.com', 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_j_w_t('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ...') # Your secret JSON Web Token
9
+ ;
10
+
11
+ account = Appwrite::Account.new(client);
12
+
13
+ response = account.create_verification(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_j_w_t('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ...') # Your secret JSON Web Token
9
+ ;
10
+
11
+ account = Appwrite::Account.new(client);
12
+
13
+ response = account.delete_session(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_j_w_t('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ...') # Your secret JSON Web Token
9
+ ;
10
+
11
+ account = Appwrite::Account.new(client);
12
+
13
+ response = account.delete_sessions();
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
+ account = Appwrite::Account.new(client);
12
+
13
+ response = account.delete();
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
+ account = Appwrite::Account.new(client);
12
+
13
+ response = account.get_logs();
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
+ account = Appwrite::Account.new(client);
12
+
13
+ response = account.get_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_j_w_t('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ...') # Your secret JSON Web Token
9
+ ;
10
+
11
+ account = Appwrite::Account.new(client);
12
+
13
+ response = account.get_sessions();
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
+ account = Appwrite::Account.new(client);
12
+
13
+ response = account.get();
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
+ account = Appwrite::Account.new(client);
12
+
13
+ response = account.update_email(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_j_w_t('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ...') # Your secret JSON Web Token
9
+ ;
10
+
11
+ account = Appwrite::Account.new(client);
12
+
13
+ response = account.update_name(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_j_w_t('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ...') # Your secret JSON Web Token
9
+ ;
10
+
11
+ account = Appwrite::Account.new(client);
12
+
13
+ response = account.update_password(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_j_w_t('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ...') # Your secret JSON Web Token
9
+ ;
10
+
11
+ account = Appwrite::Account.new(client);
12
+
13
+ response = account.update_prefs(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_j_w_t('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ...') # Your secret JSON Web Token
9
+ ;
10
+
11
+ account = Appwrite::Account.new(client);
12
+
13
+ response = account.update_recovery(user_id: '[USER_ID]', secret: '[SECRET]', password: 'password', password_again: '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_j_w_t('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ...') # Your secret JSON Web Token
9
+ ;
10
+
11
+ account = Appwrite::Account.new(client);
12
+
13
+ response = account.update_verification(user_id: '[USER_ID]', secret: '[SECRET]');
14
+
15
+ puts response
@@ -8,8 +8,8 @@ client
8
8
  .set_key('919c2d18fb5d4...a2ae413da83346ad2') # Your secret API key
9
9
  ;
10
10
 
11
- database = Appwrite::Database.new(client);
11
+ avatars = Appwrite::Avatars.new(client);
12
12
 
13
- response = database.get_collection_logs(collection_id: '[COLLECTION_ID]');
13
+ response = avatars.get_initials();
14
14
 
15
15
  puts response
@@ -10,6 +10,6 @@ client
10
10
 
11
11
  database = Appwrite::Database.new(client);
12
12
 
13
- response = database.create_document(collection_id: '[COLLECTION_ID]', data: {}, read: [], write: []);
13
+ response = database.create_document(collection_id: '[COLLECTION_ID]', data: {});
14
14
 
15
15
  puts response
@@ -10,6 +10,6 @@ client
10
10
 
11
11
  database = Appwrite::Database.new(client);
12
12
 
13
- response = database.update_collection(collection_id: '[COLLECTION_ID]', name: '[NAME]', read: [], write: []);
13
+ response = database.update_collection(collection_id: '[COLLECTION_ID]', name: '[NAME]');
14
14
 
15
15
  puts response
@@ -10,6 +10,6 @@ client
10
10
 
11
11
  database = Appwrite::Database.new(client);
12
12
 
13
- response = database.update_document(collection_id: '[COLLECTION_ID]', document_id: '[DOCUMENT_ID]', data: {}, read: [], write: []);
13
+ response = database.update_document(collection_id: '[COLLECTION_ID]', document_id: '[DOCUMENT_ID]', data: {});
14
14
 
15
15
  puts response