Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

馃悰 Bug Report: Missing type property in the AppwriteException declaration #73

Open
2 tasks done
Splinteer opened this issue Mar 17, 2024 · 1 comment
Open
2 tasks done
Assignees
Labels
bug Something isn't working

Comments

@Splinteer
Copy link

Splinteer commented Mar 17, 2024

馃憻 Reproduction steps

When using the node sdk, the AppwriteException doesn't have the type property in the interface

馃憤 Expected behavior

It should have the property since it's in the original class

馃憥 Actual Behavior

I actually tells that it doesn't exist

馃幉 Appwrite version

Version 0.10.x

馃捇 Operating system

MacOS

馃П Your Environment

In local dev

馃憖 Have you spent some time to check if this issue has been raised before?

  • I checked and didn't find similar issue

馃彚 Have you read the Code of Conduct?

I made a PR for this bug:
#74

@Splinteer Splinteer added the bug Something isn't working label Mar 17, 2024
@Splinteer Splinteer changed the title 馃悰 Bug Report: 馃悰 Bug Report: Missing type property in the AppwriteException declaration Mar 17, 2024
@Splinteer
Copy link
Author

Splinteer commented Mar 17, 2024

It could also be cool to have a proper type for the type property instead of using string and having a dictionnary of possible AppwriteException types like:

export const AppwritePlatformErrors = {
  general_mock: 'general_mock',
  general_argument_invalid: 'general_argument_invalid',
  general_query_limit_exceeded: 'general_query_limit_exceeded',
  general_query_invalid: 'general_query_invalid',
  general_cursor_not_found: 'general_cursor_not_found',
  general_provider_failure: 'general_provider_failure',
  project_unknown: 'project_unknown',
  project_invalid_success_url: 'project_invalid_success_url',
  project_invalid_failure_url: 'project_invalid_failure_url',
  project_reserved_project: 'project_reserved_project',
  project_smtp_config_invalid: 'project_smtp_config_invalid',
  project_key_expired: 'project_key_expired',
  rule_verification_failed: 'rule_verification_failed',
  project_template_default_deletion: 'project_template_default_deletion',
  general_unknown_origin: 'general_unknown_origin',
  general_access_forbidden: 'general_access_forbidden',
  general_unauthorized_scope: 'general_unauthorized_scope',
  general_route_not_found: 'general_route_not_found',
  webhook_not_found: 'webhook_not_found',
  rule_resource_not_found: 'rule_resource_not_found',
  rule_not_found: 'rule_not_found',
  key_not_found: 'key_not_found',
  platform_not_found: 'platform_not_found',
  project_not_found: 'project_not_found',
  router_host_not_found: 'router_host_not_found',
  general_not_implemented: 'general_not_implemented',
  project_already_exists: 'project_already_exists',
  rule_already_exists: 'rule_already_exists',
  project_provider_disabled: 'project_provider_disabled',
  general_rate_limit_exceeded: 'general_rate_limit_exceeded',
  general_unknown: 'general_unknown',
  general_server_error: 'general_server_error',
  general_protocol_unsupported: 'general_protocol_unsupported',
  general_codes_disabled: 'general_codes_disabled',
  router_domain_not_configured: 'router_domain_not_configured',
  general_usage_disabled: 'general_usage_disabled',
  project_provider_unsupported: 'project_provider_unsupported',
  general_service_disabled: 'general_service_disabled',
  general_smtp_disabled: 'general_smtp_disabled',
  general_phone_disabled: 'general_phone_disabled',
} as const;

export const AppwriteAuthErrors = {
  user_password_mismatch: 'user_password_mismatch',
  password_recently_used: 'password_recently_used',
  password_personal_data: 'password_personal_data',
  user_phone_not_found: 'user_phone_not_found',
  user_missing_id: 'user_missing_id',
  user_oauth2_bad_request: 'user_oauth2_bad_request',
  user_jwt_invalid: 'user_jwt_invalid',
  user_blocked: 'user_blocked',
  user_invalid_token: 'user_invalid_token',
  user_email_not_whitelisted: 'user_email_not_whitelisted',
  user_invalid_code: 'user_invalid_code',
  user_ip_not_whitelisted: 'user_ip_not_whitelisted',
  user_invalid_credentials: 'user_invalid_credentials',
  user_anonymous_console_prohibited: 'user_anonymous_console_prohibited',
  user_session_already_exists: 'user_session_already_exists',
  user_unauthorized: 'user_unauthorized',
  user_oauth2_unauthorized: 'user_oauth2_unauthorized',
  team_invalid_secret: 'team_invalid_secret',
  team_invite_mismatch: 'team_invite_mismatch',
  user_not_found: 'user_not_found',
  user_session_not_found: 'user_session_not_found',
  user_identity_not_found: 'user_identity_not_found',
  team_not_found: 'team_not_found',
  team_invite_not_found: 'team_invite_not_found',
  team_membership_mismatch: 'team_membership_mismatch',
  membership_not_found: 'membership_not_found',
  user_already_exists: 'user_already_exists',
  user_email_already_exists: 'user_email_already_exists',
  user_phone_already_exists: 'user_phone_already_exists',
  team_invite_already_exists: 'team_invite_already_exists',
  team_already_exists: 'team_already_exists',
  membership_already_confirmed: 'membership_already_confirmed',
  user_password_reset_required: 'user_password_reset_required',
  user_oauth2_provider_error: 'user_oauth2_provider_error',
  user_count_exceeded: 'user_count_exceeded',
  user_auth_method_unsupported: 'user_auth_method_unsupported',
} as const;

export const AppwriteDatabaseErrors = {
  collection_limit_exceeded: 'collection_limit_exceeded',
  document_invalid_structure: 'document_invalid_structure',
  document_missing_data: 'document_missing_data',
  document_missing_payload: 'document_missing_payload',
  attribute_unknown: 'attribute_unknown',
  attribute_not_available: 'attribute_not_available',
  attribute_format_unsupported: 'attribute_format_unsupported',
  attribute_default_unsupported: 'attribute_default_unsupported',
  attribute_limit_exceeded: 'attribute_limit_exceeded',
  attribute_value_invalid: 'attribute_value_invalid',
  attribute_type_invalid: 'attribute_type_invalid',
  index_limit_exceeded: 'index_limit_exceeded',
  index_invalid: 'index_invalid',
  document_delete_restricted: 'document_delete_restricted',
  execution_not_found: 'execution_not_found',
  database_not_found: 'database_not_found',
  collection_not_found: 'collection_not_found',
  document_not_found: 'document_not_found',
  attribute_not_found: 'attribute_not_found',
  index_not_found: 'index_not_found',
  database_already_exists: 'database_already_exists',
  collection_already_exists: 'collection_already_exists',
  document_already_exists: 'document_already_exists',
  document_update_conflict: 'document_update_conflict',
  attribute_already_exists: 'attribute_already_exists',
  index_already_exists: 'index_already_exists',
} as const;

export const AppwriteStorageErrors = {
  storage_device_not_found: 'storage_device_not_found',
  storage_file_empty: 'storage_file_empty',
  storage_file_type_unsupported: 'storage_file_type_unsupported',
  storage_invalid_file_size: 'storage_invalid_file_size',
  storage_invalid_content_range: 'storage_invalid_content_range',
  storage_invalid_appwrite_id: 'storage_invalid_appwrite_id',
  storage_invalid_file: 'storage_invalid_file',
  storage_file_not_found: 'storage_file_not_found',
  storage_bucket_not_found: 'storage_bucket_not_found',
  storage_file_already_exists: 'storage_file_already_exists',
  storage_bucket_already_exists: 'storage_bucket_already_exists',
  storage_invalid_range: 'storage_invalid_range',
} as const;

const AppwriteFunctionsErrors = {
  build_not_ready: 'build_not_ready',
  build_in_progress: 'build_in_progress',
  installation_not_found: 'installation_not_found',
  provider_repository_not_found: 'provider_repository_not_found',
  repository_not_found: 'repository_not_found',
  function_not_found: 'function_not_found',
  function_runtime_unsupported: 'function_runtime_unsupported',
  build_not_found: 'build_not_found',
  deployment_not_found: 'deployment_not_found',
  variable_not_found: 'variable_not_found',
  provider_contribution_conflict: 'provider_contribution_conflict',
  variable_already_exists: 'variable_already_exists',
} as const;

const AppwriteMigrationErrors = {
  migration_not_found: 'migration_not_found',
  migration_already_exists: 'migration_already_exists',
  migration_in_progress: 'migration_in_progress',
} as const;

const AppwriteAvatarErrors = {
  avatar_set_not_found: 'avatar_set_not_found',
  avatar_not_found: 'avatar_not_found',
  avatar_image_not_found: 'avatar_image_not_found',
  avatar_remote_url_failed: 'avatar_remote_url_failed',
  avatar_icon_not_found: 'avatar_icon_not_found',
} as const;

export const AppwriteGraphQLErrors = {
  graphql_no_query: 'graphql_no_query',
  graphql_too_many_queries: 'graphql_too_many_queries',
} as const;

export type AppwriteExceptionTypes =
  | (typeof AppwritePlatformErrors)[keyof typeof AppwritePlatformErrors]
  | (typeof AppwriteAuthErrors)[keyof typeof AppwriteAuthErrors]
  | (typeof AppwriteDatabaseErrors)[keyof typeof AppwriteDatabaseErrors]
  | (typeof AppwriteStorageErrors)[keyof typeof AppwriteStorageErrors]
  | (typeof AppwriteFunctionsErrors)[keyof typeof AppwriteFunctionsErrors]
  | (typeof AppwriteMigrationErrors)[keyof typeof AppwriteMigrationErrors]
  | (typeof AppwriteAvatarErrors)[keyof typeof AppwriteAvatarErrors]
  | (typeof AppwriteGraphQLErrors)[keyof typeof AppwriteGraphQLErrors];

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants