appwrite 28.4.0 → 29.0.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 (349) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appwrite/client.rb +17 -17
  3. data/lib/appwrite/enums/billing_plan_group.rb +0 -1
  4. data/lib/appwrite/enums/execution_trigger.rb +1 -0
  5. data/lib/appwrite/enums/proxy_rule_protocol.rb +8 -0
  6. data/lib/appwrite/models/account.rb +8 -8
  7. data/lib/appwrite/models/activity_event.rb +1 -0
  8. data/lib/appwrite/models/activity_event_list.rb +1 -0
  9. data/lib/appwrite/models/additional_resource.rb +1 -0
  10. data/lib/appwrite/models/algo_argon2.rb +1 -0
  11. data/lib/appwrite/models/algo_bcrypt.rb +1 -0
  12. data/lib/appwrite/models/algo_md5.rb +1 -0
  13. data/lib/appwrite/models/algo_phpass.rb +1 -0
  14. data/lib/appwrite/models/algo_scrypt.rb +1 -0
  15. data/lib/appwrite/models/algo_scrypt_modified.rb +1 -0
  16. data/lib/appwrite/models/algo_sha.rb +1 -0
  17. data/lib/appwrite/models/app.rb +1 -0
  18. data/lib/appwrite/models/app_installation.rb +2 -1
  19. data/lib/appwrite/models/app_installation_list.rb +1 -0
  20. data/lib/appwrite/models/app_key.rb +2 -1
  21. data/lib/appwrite/models/app_key_list.rb +1 -0
  22. data/lib/appwrite/models/app_scope.rb +1 -0
  23. data/lib/appwrite/models/app_scope_list.rb +1 -0
  24. data/lib/appwrite/models/app_secret.rb +2 -1
  25. data/lib/appwrite/models/app_secret_list.rb +1 -0
  26. data/lib/appwrite/models/app_secret_plaintext.rb +2 -1
  27. data/lib/appwrite/models/apps_list.rb +1 -0
  28. data/lib/appwrite/models/attribute_bigint.rb +5 -4
  29. data/lib/appwrite/models/attribute_boolean.rb +3 -2
  30. data/lib/appwrite/models/attribute_datetime.rb +3 -2
  31. data/lib/appwrite/models/attribute_email.rb +3 -2
  32. data/lib/appwrite/models/attribute_enum.rb +3 -2
  33. data/lib/appwrite/models/attribute_float.rb +5 -4
  34. data/lib/appwrite/models/attribute_integer.rb +5 -4
  35. data/lib/appwrite/models/attribute_ip.rb +3 -2
  36. data/lib/appwrite/models/attribute_line.rb +3 -2
  37. data/lib/appwrite/models/attribute_list.rb +1 -0
  38. data/lib/appwrite/models/attribute_longtext.rb +4 -3
  39. data/lib/appwrite/models/attribute_mediumtext.rb +4 -3
  40. data/lib/appwrite/models/attribute_object.rb +2 -1
  41. data/lib/appwrite/models/attribute_point.rb +3 -2
  42. data/lib/appwrite/models/attribute_polygon.rb +3 -2
  43. data/lib/appwrite/models/attribute_relationship.rb +2 -1
  44. data/lib/appwrite/models/attribute_string.rb +4 -3
  45. data/lib/appwrite/models/attribute_text.rb +4 -3
  46. data/lib/appwrite/models/attribute_url.rb +3 -2
  47. data/lib/appwrite/models/attribute_varchar.rb +4 -3
  48. data/lib/appwrite/models/attribute_vector.rb +2 -1
  49. data/lib/appwrite/models/backup_archive.rb +5 -4
  50. data/lib/appwrite/models/backup_archive_list.rb +1 -0
  51. data/lib/appwrite/models/backup_policy.rb +3 -2
  52. data/lib/appwrite/models/backup_policy_list.rb +1 -0
  53. data/lib/appwrite/models/backup_restoration.rb +2 -1
  54. data/lib/appwrite/models/backup_restoration_list.rb +1 -0
  55. data/lib/appwrite/models/billing_limits.rb +8 -8
  56. data/lib/appwrite/models/billing_plan.rb +14 -14
  57. data/lib/appwrite/models/billing_plan_addon.rb +2 -2
  58. data/lib/appwrite/models/billing_plan_addon_details.rb +2 -1
  59. data/lib/appwrite/models/billing_plan_dedicated_database_limits.rb +19 -19
  60. data/lib/appwrite/models/billing_plan_limits.rb +2 -2
  61. data/lib/appwrite/models/billing_plan_supported_addons.rb +1 -0
  62. data/lib/appwrite/models/block.rb +4 -33
  63. data/lib/appwrite/models/bucket.rb +1 -0
  64. data/lib/appwrite/models/bucket_list.rb +1 -0
  65. data/lib/appwrite/models/collection.rb +1 -0
  66. data/lib/appwrite/models/collection_list.rb +1 -0
  67. data/lib/appwrite/models/column_bigint.rb +5 -4
  68. data/lib/appwrite/models/column_boolean.rb +3 -2
  69. data/lib/appwrite/models/column_datetime.rb +3 -2
  70. data/lib/appwrite/models/column_email.rb +3 -2
  71. data/lib/appwrite/models/column_enum.rb +3 -2
  72. data/lib/appwrite/models/column_float.rb +5 -4
  73. data/lib/appwrite/models/column_index.rb +2 -1
  74. data/lib/appwrite/models/column_index_list.rb +1 -0
  75. data/lib/appwrite/models/column_integer.rb +5 -4
  76. data/lib/appwrite/models/column_ip.rb +3 -2
  77. data/lib/appwrite/models/column_line.rb +3 -2
  78. data/lib/appwrite/models/column_list.rb +1 -0
  79. data/lib/appwrite/models/column_longtext.rb +4 -3
  80. data/lib/appwrite/models/column_mediumtext.rb +4 -3
  81. data/lib/appwrite/models/column_point.rb +3 -2
  82. data/lib/appwrite/models/column_polygon.rb +3 -2
  83. data/lib/appwrite/models/column_relationship.rb +2 -1
  84. data/lib/appwrite/models/column_string.rb +4 -3
  85. data/lib/appwrite/models/column_text.rb +4 -3
  86. data/lib/appwrite/models/column_url.rb +3 -2
  87. data/lib/appwrite/models/column_varchar.rb +4 -3
  88. data/lib/appwrite/models/continent.rb +1 -0
  89. data/lib/appwrite/models/continent_list.rb +1 -0
  90. data/lib/appwrite/models/country.rb +1 -0
  91. data/lib/appwrite/models/country_list.rb +1 -0
  92. data/lib/appwrite/models/currency.rb +1 -0
  93. data/lib/appwrite/models/currency_list.rb +1 -0
  94. data/lib/appwrite/models/database.rb +10 -9
  95. data/lib/appwrite/models/database_list.rb +1 -0
  96. data/lib/appwrite/models/database_migration.rb +1 -0
  97. data/lib/appwrite/models/database_migration_list.rb +1 -0
  98. data/lib/appwrite/models/database_status.rb +6 -5
  99. data/lib/appwrite/models/database_status_connections.rb +1 -0
  100. data/lib/appwrite/models/database_status_replica.rb +3 -2
  101. data/lib/appwrite/models/database_status_volume.rb +1 -0
  102. data/lib/appwrite/models/dedicated_database.rb +8 -7
  103. data/lib/appwrite/models/dedicated_database_backup.rb +6 -5
  104. data/lib/appwrite/models/dedicated_database_backup_list.rb +1 -0
  105. data/lib/appwrite/models/dedicated_database_backup_storage.rb +1 -0
  106. data/lib/appwrite/models/dedicated_database_branch.rb +2 -1
  107. data/lib/appwrite/models/dedicated_database_branch_list.rb +1 -0
  108. data/lib/appwrite/models/dedicated_database_execution.rb +1 -0
  109. data/lib/appwrite/models/dedicated_database_execution_column.rb +1 -0
  110. data/lib/appwrite/models/dedicated_database_extensions.rb +1 -0
  111. data/lib/appwrite/models/dedicated_database_list.rb +1 -0
  112. data/lib/appwrite/models/dedicated_database_member.rb +3 -2
  113. data/lib/appwrite/models/dedicated_database_operation.rb +4 -3
  114. data/lib/appwrite/models/dedicated_database_operation_list.rb +1 -0
  115. data/lib/appwrite/models/dedicated_database_pitr_windows.rb +1 -0
  116. data/lib/appwrite/models/dedicated_database_pooler.rb +1 -0
  117. data/lib/appwrite/models/dedicated_database_replicas.rb +3 -2
  118. data/lib/appwrite/models/dedicated_database_restoration.rb +11 -5
  119. data/lib/appwrite/models/dedicated_database_restoration_list.rb +1 -0
  120. data/lib/appwrite/models/dedicated_database_specification.rb +1 -0
  121. data/lib/appwrite/models/dedicated_database_specification_list.rb +4 -8
  122. data/lib/appwrite/models/deployment.rb +1 -0
  123. data/lib/appwrite/models/deployment_list.rb +1 -0
  124. data/lib/appwrite/models/document.rb +1 -0
  125. data/lib/appwrite/models/document_list.rb +1 -0
  126. data/lib/appwrite/models/domain.rb +1 -1
  127. data/lib/appwrite/models/domain_price.rb +2 -2
  128. data/lib/appwrite/models/email_template.rb +1 -0
  129. data/lib/appwrite/models/email_template_list.rb +1 -0
  130. data/lib/appwrite/models/embedding.rb +1 -0
  131. data/lib/appwrite/models/embedding_list.rb +1 -0
  132. data/lib/appwrite/models/ephemeral_key.rb +1 -0
  133. data/lib/appwrite/models/execution.rb +3 -1
  134. data/lib/appwrite/models/execution_list.rb +1 -0
  135. data/lib/appwrite/models/file.rb +1 -0
  136. data/lib/appwrite/models/file_list.rb +1 -0
  137. data/lib/appwrite/models/framework.rb +1 -0
  138. data/lib/appwrite/models/framework_adapter.rb +2 -1
  139. data/lib/appwrite/models/framework_list.rb +1 -0
  140. data/lib/appwrite/models/function.rb +10 -4
  141. data/lib/appwrite/models/function_list.rb +1 -0
  142. data/lib/appwrite/models/headers.rb +1 -0
  143. data/lib/appwrite/models/identity.rb +1 -0
  144. data/lib/appwrite/models/identity_list.rb +1 -0
  145. data/lib/appwrite/models/index.rb +2 -1
  146. data/lib/appwrite/models/index_list.rb +1 -0
  147. data/lib/appwrite/models/insight.rb +4 -3
  148. data/lib/appwrite/models/insight_cta.rb +1 -0
  149. data/lib/appwrite/models/insight_list.rb +1 -0
  150. data/lib/appwrite/models/jwt.rb +1 -0
  151. data/lib/appwrite/models/key.rb +1 -0
  152. data/lib/appwrite/models/key_list.rb +1 -0
  153. data/lib/appwrite/models/language.rb +1 -0
  154. data/lib/appwrite/models/language_list.rb +1 -0
  155. data/lib/appwrite/models/locale.rb +12 -11
  156. data/lib/appwrite/models/locale_code.rb +1 -0
  157. data/lib/appwrite/models/locale_code_list.rb +1 -0
  158. data/lib/appwrite/models/membership.rb +1 -0
  159. data/lib/appwrite/models/membership_list.rb +1 -0
  160. data/lib/appwrite/models/message.rb +4 -3
  161. data/lib/appwrite/models/message_list.rb +1 -0
  162. data/lib/appwrite/models/mfa_challenge.rb +1 -0
  163. data/lib/appwrite/models/mfa_challenge_secret.rb +1 -0
  164. data/lib/appwrite/models/mfa_factors.rb +1 -0
  165. data/lib/appwrite/models/mfa_recovery_codes.rb +1 -0
  166. data/lib/appwrite/models/mfa_type.rb +1 -0
  167. data/lib/appwrite/models/mock_number.rb +1 -0
  168. data/lib/appwrite/models/mock_number_list.rb +1 -0
  169. data/lib/appwrite/models/o_auth2_amazon.rb +1 -0
  170. data/lib/appwrite/models/o_auth2_apple.rb +1 -0
  171. data/lib/appwrite/models/o_auth2_appwrite.rb +1 -0
  172. data/lib/appwrite/models/o_auth2_auth0.rb +2 -1
  173. data/lib/appwrite/models/o_auth2_authentik.rb +1 -0
  174. data/lib/appwrite/models/o_auth2_autodesk.rb +1 -0
  175. data/lib/appwrite/models/o_auth2_bitbucket.rb +1 -0
  176. data/lib/appwrite/models/o_auth2_bitly.rb +1 -0
  177. data/lib/appwrite/models/o_auth2_box.rb +1 -0
  178. data/lib/appwrite/models/o_auth2_cloudflare.rb +1 -0
  179. data/lib/appwrite/models/o_auth2_dailymotion.rb +1 -0
  180. data/lib/appwrite/models/o_auth2_discord.rb +2 -1
  181. data/lib/appwrite/models/o_auth2_disqus.rb +1 -0
  182. data/lib/appwrite/models/o_auth2_dropbox.rb +1 -0
  183. data/lib/appwrite/models/o_auth2_etsy.rb +1 -0
  184. data/lib/appwrite/models/o_auth2_facebook.rb +1 -0
  185. data/lib/appwrite/models/o_auth2_figma.rb +1 -0
  186. data/lib/appwrite/models/o_auth2_fusion_auth.rb +1 -0
  187. data/lib/appwrite/models/o_auth2_github.rb +2 -1
  188. data/lib/appwrite/models/o_auth2_gitlab.rb +1 -0
  189. data/lib/appwrite/models/o_auth2_google.rb +1 -0
  190. data/lib/appwrite/models/o_auth2_hugging_face.rb +1 -0
  191. data/lib/appwrite/models/o_auth2_keycloak.rb +1 -0
  192. data/lib/appwrite/models/o_auth2_kick.rb +1 -0
  193. data/lib/appwrite/models/o_auth2_linkedin.rb +1 -0
  194. data/lib/appwrite/models/o_auth2_microsoft.rb +2 -1
  195. data/lib/appwrite/models/o_auth2_notion.rb +1 -0
  196. data/lib/appwrite/models/o_auth2_oidc.rb +7 -6
  197. data/lib/appwrite/models/o_auth2_okta.rb +2 -1
  198. data/lib/appwrite/models/o_auth2_paypal.rb +1 -0
  199. data/lib/appwrite/models/o_auth2_podio.rb +1 -0
  200. data/lib/appwrite/models/o_auth2_provider_list.rb +1 -0
  201. data/lib/appwrite/models/o_auth2_resend.rb +1 -0
  202. data/lib/appwrite/models/o_auth2_salesforce.rb +2 -1
  203. data/lib/appwrite/models/o_auth2_slack.rb +1 -0
  204. data/lib/appwrite/models/o_auth2_spotify.rb +1 -0
  205. data/lib/appwrite/models/o_auth2_stripe.rb +1 -0
  206. data/lib/appwrite/models/o_auth2_tradeshift.rb +1 -0
  207. data/lib/appwrite/models/o_auth2_twitch.rb +1 -0
  208. data/lib/appwrite/models/o_auth2_word_press.rb +1 -0
  209. data/lib/appwrite/models/o_auth2_x.rb +1 -0
  210. data/lib/appwrite/models/o_auth2_yahoo.rb +1 -0
  211. data/lib/appwrite/models/o_auth2_yandex.rb +1 -0
  212. data/lib/appwrite/models/o_auth2_zoho.rb +2 -1
  213. data/lib/appwrite/models/o_auth2_zoom.rb +1 -0
  214. data/lib/appwrite/models/oauth2_approve.rb +1 -0
  215. data/lib/appwrite/models/oauth2_authorize.rb +1 -0
  216. data/lib/appwrite/models/oauth2_consent.rb +1 -0
  217. data/lib/appwrite/models/oauth2_consent_list.rb +1 -0
  218. data/lib/appwrite/models/oauth2_consent_token.rb +1 -0
  219. data/lib/appwrite/models/oauth2_consent_token_list.rb +1 -0
  220. data/lib/appwrite/models/oauth2_device_authorization.rb +1 -0
  221. data/lib/appwrite/models/oauth2_grant.rb +1 -0
  222. data/lib/appwrite/models/oauth2_introspection.rb +11 -11
  223. data/lib/appwrite/models/oauth2_organization.rb +1 -0
  224. data/lib/appwrite/models/oauth2_organization_list.rb +1 -0
  225. data/lib/appwrite/models/oauth2_par.rb +1 -0
  226. data/lib/appwrite/models/oauth2_project.rb +1 -0
  227. data/lib/appwrite/models/oauth2_project_list.rb +1 -0
  228. data/lib/appwrite/models/oauth2_reject.rb +1 -0
  229. data/lib/appwrite/models/oauth2_token.rb +3 -2
  230. data/lib/appwrite/models/organization.rb +21 -20
  231. data/lib/appwrite/models/passkey.rb +1 -0
  232. data/lib/appwrite/models/passkey_challenge.rb +1 -0
  233. data/lib/appwrite/models/passkey_list.rb +1 -0
  234. data/lib/appwrite/models/phone.rb +1 -0
  235. data/lib/appwrite/models/phone_list.rb +1 -0
  236. data/lib/appwrite/models/platform_android.rb +1 -0
  237. data/lib/appwrite/models/platform_apple.rb +1 -0
  238. data/lib/appwrite/models/platform_linux.rb +1 -0
  239. data/lib/appwrite/models/platform_list.rb +1 -0
  240. data/lib/appwrite/models/platform_web.rb +1 -0
  241. data/lib/appwrite/models/platform_windows.rb +1 -0
  242. data/lib/appwrite/models/policy_deny_aliased_email.rb +1 -0
  243. data/lib/appwrite/models/policy_deny_corporate_email.rb +1 -0
  244. data/lib/appwrite/models/policy_deny_disposable_email.rb +1 -0
  245. data/lib/appwrite/models/policy_deny_free_email.rb +1 -0
  246. data/lib/appwrite/models/policy_list.rb +1 -0
  247. data/lib/appwrite/models/policy_membership_privacy.rb +1 -0
  248. data/lib/appwrite/models/policy_mfa_factors.rb +1 -0
  249. data/lib/appwrite/models/policy_passkey.rb +1 -0
  250. data/lib/appwrite/models/policy_password_dictionary.rb +1 -0
  251. data/lib/appwrite/models/policy_password_history.rb +1 -0
  252. data/lib/appwrite/models/policy_password_personal_data.rb +1 -0
  253. data/lib/appwrite/models/policy_password_strength.rb +1 -0
  254. data/lib/appwrite/models/policy_session_alert.rb +1 -0
  255. data/lib/appwrite/models/policy_session_duration.rb +1 -0
  256. data/lib/appwrite/models/policy_session_invalidation.rb +1 -0
  257. data/lib/appwrite/models/policy_session_limit.rb +1 -0
  258. data/lib/appwrite/models/policy_user_limit.rb +1 -0
  259. data/lib/appwrite/models/postgres_extension.rb +1 -0
  260. data/lib/appwrite/models/presence.rb +4 -3
  261. data/lib/appwrite/models/presence_list.rb +1 -0
  262. data/lib/appwrite/models/program.rb +1 -0
  263. data/lib/appwrite/models/project.rb +23 -27
  264. data/lib/appwrite/models/project_auth_method.rb +1 -0
  265. data/lib/appwrite/models/project_list.rb +1 -0
  266. data/lib/appwrite/models/project_protocol.rb +1 -0
  267. data/lib/appwrite/models/project_service.rb +1 -0
  268. data/lib/appwrite/models/provider.rb +2 -1
  269. data/lib/appwrite/models/provider_list.rb +1 -0
  270. data/lib/appwrite/models/proxy_invalidation.rb +1 -0
  271. data/lib/appwrite/models/proxy_rule.rb +23 -4
  272. data/lib/appwrite/models/proxy_rule_list.rb +1 -0
  273. data/lib/appwrite/models/report.rb +2 -1
  274. data/lib/appwrite/models/report_list.rb +1 -0
  275. data/lib/appwrite/models/resource_token.rb +1 -0
  276. data/lib/appwrite/models/resource_token_list.rb +1 -0
  277. data/lib/appwrite/models/row.rb +1 -0
  278. data/lib/appwrite/models/row_list.rb +1 -0
  279. data/lib/appwrite/models/runtime.rb +1 -0
  280. data/lib/appwrite/models/runtime_list.rb +1 -0
  281. data/lib/appwrite/models/session.rb +1 -0
  282. data/lib/appwrite/models/session_list.rb +1 -0
  283. data/lib/appwrite/models/site.rb +1 -0
  284. data/lib/appwrite/models/site_list.rb +1 -0
  285. data/lib/appwrite/models/specification.rb +1 -0
  286. data/lib/appwrite/models/specification_list.rb +1 -0
  287. data/lib/appwrite/models/subscriber.rb +1 -0
  288. data/lib/appwrite/models/subscriber_list.rb +1 -0
  289. data/lib/appwrite/models/table.rb +1 -0
  290. data/lib/appwrite/models/table_list.rb +1 -0
  291. data/lib/appwrite/models/target.rb +2 -1
  292. data/lib/appwrite/models/target_list.rb +1 -0
  293. data/lib/appwrite/models/team.rb +1 -0
  294. data/lib/appwrite/models/team_list.rb +1 -0
  295. data/lib/appwrite/models/token.rb +1 -0
  296. data/lib/appwrite/models/token_secret.rb +1 -0
  297. data/lib/appwrite/models/topic.rb +3 -2
  298. data/lib/appwrite/models/topic_list.rb +1 -0
  299. data/lib/appwrite/models/transaction.rb +1 -0
  300. data/lib/appwrite/models/transaction_list.rb +1 -0
  301. data/lib/appwrite/models/usage_billing_plan.rb +27 -27
  302. data/lib/appwrite/models/user.rb +12 -11
  303. data/lib/appwrite/models/user_list.rb +1 -0
  304. data/lib/appwrite/models/variable.rb +1 -0
  305. data/lib/appwrite/models/variable_list.rb +1 -0
  306. data/lib/appwrite/models/vectorsdb_collection.rb +1 -0
  307. data/lib/appwrite/models/vectorsdb_collection_list.rb +1 -0
  308. data/lib/appwrite/models/webhook.rb +1 -0
  309. data/lib/appwrite/models/webhook_list.rb +1 -0
  310. data/lib/appwrite/query/builder.rb +361 -0
  311. data/lib/appwrite/query.rb +190 -0
  312. data/lib/appwrite/services/account.rb +112 -132
  313. data/lib/appwrite/services/activities.rb +4 -4
  314. data/lib/appwrite/services/advisor.rb +19 -18
  315. data/lib/appwrite/services/apps.rb +89 -89
  316. data/lib/appwrite/services/avatars.rb +21 -21
  317. data/lib/appwrite/services/backups.rb +30 -30
  318. data/lib/appwrite/services/databases.rb +497 -449
  319. data/lib/appwrite/services/documents_db.rb +195 -190
  320. data/lib/appwrite/services/domains.rb +55 -55
  321. data/lib/appwrite/services/embeddings.rb +2 -2
  322. data/lib/appwrite/services/functions.rb +117 -109
  323. data/lib/appwrite/services/graphql.rb +4 -4
  324. data/lib/appwrite/services/messaging.rb +156 -152
  325. data/lib/appwrite/services/mongo.rb +194 -130
  326. data/lib/appwrite/services/mysql.rb +212 -144
  327. data/lib/appwrite/services/oauth2.rb +27 -27
  328. data/lib/appwrite/services/organization.rb +55 -246
  329. data/lib/appwrite/services/postgresql.rb +226 -158
  330. data/lib/appwrite/services/presences.rb +17 -16
  331. data/lib/appwrite/services/project.rb +149 -142
  332. data/lib/appwrite/services/proxy.rb +70 -23
  333. data/lib/appwrite/services/sites.rb +108 -104
  334. data/lib/appwrite/services/storage.rb +62 -59
  335. data/lib/appwrite/services/tables_db.rb +613 -557
  336. data/lib/appwrite/services/teams.rb +83 -81
  337. data/lib/appwrite/services/tokens.rb +25 -24
  338. data/lib/appwrite/services/users.rb +170 -199
  339. data/lib/appwrite/services/vectors_db.rb +181 -176
  340. data/lib/appwrite/services/waf.rb +7 -7
  341. data/lib/appwrite/services/webhooks.rb +23 -22
  342. data/lib/appwrite/topic.rb +53 -0
  343. data/lib/appwrite.rb +6 -9
  344. metadata +5 -7
  345. data/lib/appwrite/enums/organization_key_scopes.rb +0 -22
  346. data/lib/appwrite/models/dedicated_database_specification_pricing.rb +0 -42
  347. data/lib/appwrite/models/dev_key.rb +0 -62
  348. data/lib/appwrite/models/log.rb +0 -132
  349. data/lib/appwrite/models/log_list.rb +0 -32
@@ -216,6 +216,15 @@ module Appwrite
216
216
  return Query.new("elemMatch", attribute, queries.map { |query| JSON.parse(query) }).to_s
217
217
  end
218
218
 
219
+ # Constrain populated related documents on a relationship attribute.
220
+ #
221
+ # @param attribute [String] The relationship attribute to query.
222
+ # @param queries [Array<String>] Filter, order, select, and pagination queries applied to related documents.
223
+ # @return [String] The query string.
224
+ def relationship(attribute, queries)
225
+ return Query.new("relationship", attribute, queries.map { |query| JSON.parse(query) }).to_s
226
+ end
227
+
219
228
  def distance_equal(attribute, values, distance, meters = true)
220
229
  return Query.new("distanceEqual", attribute, [[values, distance, meters]]).to_s
221
230
  end
@@ -275,6 +284,187 @@ module Appwrite
275
284
  def not_touches(attribute, values)
276
285
  return Query.new("notTouches", attribute, [values]).to_s
277
286
  end
287
+
288
+ def count(attribute = '*', alias_name = '')
289
+ return Query.new("count", attribute, alias_name != '' ? alias_name : nil).to_s
290
+ end
291
+
292
+ def count_distinct(attribute, alias_name = '')
293
+ return Query.new("countDistinct", attribute, alias_name != '' ? alias_name : nil).to_s
294
+ end
295
+
296
+ def sum(attribute, alias_name = '')
297
+ return Query.new("sum", attribute, alias_name != '' ? alias_name : nil).to_s
298
+ end
299
+
300
+ def avg(attribute, alias_name = '')
301
+ return Query.new("avg", attribute, alias_name != '' ? alias_name : nil).to_s
302
+ end
303
+
304
+ def min(attribute, alias_name = '')
305
+ return Query.new("min", attribute, alias_name != '' ? alias_name : nil).to_s
306
+ end
307
+
308
+ def max(attribute, alias_name = '')
309
+ return Query.new("max", attribute, alias_name != '' ? alias_name : nil).to_s
310
+ end
311
+
312
+ def stddev(attribute, alias_name = '')
313
+ return Query.new("stddev", attribute, alias_name != '' ? alias_name : nil).to_s
314
+ end
315
+
316
+ def stddev_pop(attribute, alias_name = '')
317
+ return Query.new("stddevPop", attribute, alias_name != '' ? alias_name : nil).to_s
318
+ end
319
+
320
+ def stddev_samp(attribute, alias_name = '')
321
+ return Query.new("stddevSamp", attribute, alias_name != '' ? alias_name : nil).to_s
322
+ end
323
+
324
+ def variance(attribute, alias_name = '')
325
+ return Query.new("variance", attribute, alias_name != '' ? alias_name : nil).to_s
326
+ end
327
+
328
+ def var_pop(attribute, alias_name = '')
329
+ return Query.new("varPop", attribute, alias_name != '' ? alias_name : nil).to_s
330
+ end
331
+
332
+ def var_samp(attribute, alias_name = '')
333
+ return Query.new("varSamp", attribute, alias_name != '' ? alias_name : nil).to_s
334
+ end
335
+
336
+ def bit_and(attribute, alias_name = '')
337
+ return Query.new("bitAnd", attribute, alias_name != '' ? alias_name : nil).to_s
338
+ end
339
+
340
+ def bit_or(attribute, alias_name = '')
341
+ return Query.new("bitOr", attribute, alias_name != '' ? alias_name : nil).to_s
342
+ end
343
+
344
+ def bit_xor(attribute, alias_name = '')
345
+ return Query.new("bitXor", attribute, alias_name != '' ? alias_name : nil).to_s
346
+ end
347
+
348
+ def group_by(attributes)
349
+ return Query.new("groupBy", nil, attributes).to_s
350
+ end
351
+
352
+ def having(queries)
353
+ return Query.new("having", nil, queries.map { |query| JSON.parse(query) }).to_s
354
+ end
355
+
356
+ def distinct()
357
+ return Query.new("distinct", nil, nil).to_s
358
+ end
359
+
360
+ def on(left, right, operator = '=')
361
+ return Query.new("on", nil, [left, operator, right]).to_s
362
+ end
363
+
364
+ def join(table, left, right = '', operator = '=', alias_name = '')
365
+ return create_join("join", table, left, right, operator, alias_name)
366
+ end
367
+
368
+ def left_join(table, left, right = '', operator = '=', alias_name = '')
369
+ return create_join("leftJoin", table, left, right, operator, alias_name)
370
+ end
371
+
372
+ def right_join(table, left, right = '', operator = '=', alias_name = '')
373
+ return create_join("rightJoin", table, left, right, operator, alias_name)
374
+ end
375
+
376
+ def full_outer_join(table, left, right = '', operator = '=', alias_name = '')
377
+ return create_join("fullOuterJoin", table, left, right, operator, alias_name)
378
+ end
379
+
380
+ def cross_join(table, alias_name = '')
381
+ return Query.new("crossJoin", table, alias_name != '' ? alias_name : nil).to_s
382
+ end
383
+
384
+ def covers(attribute, values)
385
+ return Query.new("covers", attribute, [values]).to_s
386
+ end
387
+
388
+ def not_covers(attribute, values)
389
+ return Query.new("notCovers", attribute, [values]).to_s
390
+ end
391
+
392
+ def spatial_equals(attribute, values)
393
+ return Query.new("spatialEquals", attribute, [values]).to_s
394
+ end
395
+
396
+ def not_spatial_equals(attribute, values)
397
+ return Query.new("notSpatialEquals", attribute, [values]).to_s
398
+ end
399
+
400
+ def page(page, per_page = 25)
401
+ if page < 1
402
+ raise ArgumentError, "Page must be >= 1, got #{page}"
403
+ end
404
+ if per_page < 1
405
+ raise ArgumentError, "Per page must be >= 1, got #{per_page}"
406
+ end
407
+
408
+ return [
409
+ limit(per_page),
410
+ offset((page - 1) * per_page),
411
+ ]
412
+ end
413
+
414
+ def builder
415
+ return Builder.new
416
+ end
417
+
418
+ def _flatten(value)
419
+ return value.build if value.is_a?(Builder)
420
+ return value.to_s if value.is_a?(Query)
421
+ return value unless value.is_a?(Array)
422
+
423
+ out = []
424
+ changed = false
425
+ value.each do |item|
426
+ flat = _flatten(item)
427
+ if item.is_a?(Builder) || item.is_a?(Query)
428
+ if flat.is_a?(Array)
429
+ out.concat(flat)
430
+ else
431
+ out << flat
432
+ end
433
+ changed = true
434
+ next
435
+ end
436
+ changed = true if flat != item
437
+ out << flat
438
+ end
439
+
440
+ changed ? out : value
441
+ end
442
+
443
+ private
444
+
445
+ def create_join(method, table, left, right, operator, alias_name)
446
+ return nested_join(method, table, '', left) if left.is_a?(Array)
447
+ return nested_join(method, table, left, right) if right.is_a?(Array)
448
+
449
+ return join_query(method, table, left, right, operator, alias_name)
450
+ end
451
+
452
+ def nested_join(method, table, alias_name, on)
453
+ values = []
454
+ values << alias_name if alias_name != ''
455
+ on.each { |query| values << JSON.parse(query) }
456
+
457
+ return Query.new(method, table, values).to_s
458
+ end
459
+
460
+ def join_query(method, table, left, right, operator, alias_name)
461
+ values = [left, operator, right]
462
+ values << alias_name if alias_name != ''
463
+
464
+ return Query.new(method, table, values).to_s
465
+ end
278
466
  end
279
467
  end
468
+
469
+ require_relative 'query/builder'
280
470
  end