webhookdb 1.2.2 → 1.3.1

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 (131) hide show
  1. checksums.yaml +4 -4
  2. data/admin-dist/assets/index-6aebf805.js +264 -0
  3. data/admin-dist/favicon.ico +0 -0
  4. data/admin-dist/index.html +130 -0
  5. data/admin-dist/manifest.json +15 -0
  6. data/data/messages/replicators/url-recorder.liquid +20 -0
  7. data/data/messages/templates/errors/signalwire_send_sms.email.liquid +31 -0
  8. data/data/messages/web/install-customer-login.liquid +6 -5
  9. data/data/messages/web/install-error.liquid +1 -1
  10. data/data/messages/web/install-forbidden.liquid +25 -0
  11. data/data/messages/web/install-org-chooser.liquid +40 -0
  12. data/data/messages/web/install-success.liquid +2 -1
  13. data/data/messages/web/install.liquid +2 -1
  14. data/data/messages/web/partials/head.liquid +2 -0
  15. data/data/messages/web/styles.liquid +24 -0
  16. data/db/migrations/041_views.rb +20 -0
  17. data/db/migrations/042_sint_lock.rb +10 -0
  18. data/db/migrations/043_text_search.rb +28 -0
  19. data/db/migrations/044_oauth_session_token_cache.rb +21 -0
  20. data/integration/auth_spec.rb +2 -2
  21. data/lib/sequel/plugins/text_searchable.rb +165 -0
  22. data/lib/sequel/text_searchable.rb +42 -0
  23. data/lib/webhookdb/admin_api/auth.rb +24 -3
  24. data/lib/webhookdb/admin_api/data_provider.rb +196 -0
  25. data/lib/webhookdb/admin_api/entities.rb +143 -28
  26. data/lib/webhookdb/admin_api.rb +0 -2
  27. data/lib/webhookdb/api/auth.rb +5 -6
  28. data/lib/webhookdb/api/db.rb +31 -6
  29. data/lib/webhookdb/api/entities.rb +7 -1
  30. data/lib/webhookdb/api/helpers.rb +6 -25
  31. data/lib/webhookdb/api/install.rb +204 -79
  32. data/lib/webhookdb/api/organizations.rb +14 -12
  33. data/lib/webhookdb/api/saved_queries.rb +9 -3
  34. data/lib/webhookdb/api/saved_views.rb +99 -0
  35. data/lib/webhookdb/api/service_integrations.rb +15 -9
  36. data/lib/webhookdb/api/subscriptions.rb +3 -1
  37. data/lib/webhookdb/api/sync_targets.rb +9 -7
  38. data/lib/webhookdb/api/system.rb +1 -0
  39. data/lib/webhookdb/api/webhook_subscriptions.rb +3 -1
  40. data/lib/webhookdb/apps.rb +30 -7
  41. data/lib/webhookdb/async/audit_logger.rb +2 -0
  42. data/lib/webhookdb/async.rb +5 -0
  43. data/lib/webhookdb/backfill_job/service_integration_lock.rb +22 -0
  44. data/lib/webhookdb/backfill_job.rb +9 -0
  45. data/lib/webhookdb/customer.rb +5 -0
  46. data/lib/webhookdb/database_document.rb +1 -1
  47. data/lib/webhookdb/db_adapter/default_sql.rb +1 -1
  48. data/lib/webhookdb/db_adapter.rb +20 -4
  49. data/lib/webhookdb/fixtures/message_bodies.rb +34 -0
  50. data/lib/webhookdb/fixtures/organizations.rb +5 -0
  51. data/lib/webhookdb/fixtures/roles.rb +14 -0
  52. data/lib/webhookdb/fixtures/saved_views.rb +25 -0
  53. data/lib/webhookdb/fixtures/webhook_subscription_deliveries.rb +18 -0
  54. data/lib/webhookdb/http.rb +8 -2
  55. data/lib/webhookdb/icalendar.rb +3 -0
  56. data/lib/webhookdb/idempotency.rb +69 -22
  57. data/lib/webhookdb/increase.rb +69 -21
  58. data/lib/webhookdb/intercom.rb +10 -3
  59. data/lib/webhookdb/jobs/backfill.rb +3 -1
  60. data/lib/webhookdb/jobs/emailer.rb +0 -1
  61. data/lib/webhookdb/jobs/icalendar_delete_stale_cancelled_events.rb +19 -0
  62. data/lib/webhookdb/jobs/icalendar_enqueue_syncs.rb +1 -1
  63. data/lib/webhookdb/jobs/icalendar_sync.rb +1 -1
  64. data/lib/webhookdb/jobs/increase_event_handler.rb +20 -0
  65. data/lib/webhookdb/jobs/scheduled_backfills.rb +2 -1
  66. data/lib/webhookdb/jobs/sync_target_run_sync.rb +3 -1
  67. data/lib/webhookdb/message/body.rb +6 -4
  68. data/lib/webhookdb/message/delivery.rb +2 -0
  69. data/lib/webhookdb/messages/error_icalendar_fetch.rb +1 -2
  70. data/lib/webhookdb/messages/error_signalwire_send_sms.rb +48 -0
  71. data/lib/webhookdb/oauth/fake_provider.rb +44 -0
  72. data/lib/webhookdb/oauth/front_provider.rb +1 -2
  73. data/lib/webhookdb/oauth/increase_provider.rb +80 -0
  74. data/lib/webhookdb/oauth/intercom_provider.rb +3 -11
  75. data/lib/webhookdb/oauth/session.rb +20 -0
  76. data/lib/webhookdb/oauth.rb +7 -21
  77. data/lib/webhookdb/organization/alerting.rb +2 -0
  78. data/lib/webhookdb/organization/database_migration.rb +3 -0
  79. data/lib/webhookdb/organization.rb +37 -6
  80. data/lib/webhookdb/organization_membership.rb +14 -7
  81. data/lib/webhookdb/postgres.rb +2 -0
  82. data/lib/webhookdb/replicator/base.rb +1 -0
  83. data/lib/webhookdb/replicator/docgen.rb +9 -1
  84. data/lib/webhookdb/replicator/fake.rb +2 -3
  85. data/lib/webhookdb/replicator/front_signalwire_message_channel_app_v1.rb +49 -14
  86. data/lib/webhookdb/replicator/icalendar_calendar_v1.rb +97 -17
  87. data/lib/webhookdb/replicator/icalendar_event_v1.rb +104 -2
  88. data/lib/webhookdb/replicator/increase_account_number_v1.rb +6 -43
  89. data/lib/webhookdb/replicator/increase_account_transfer_v1.rb +7 -24
  90. data/lib/webhookdb/replicator/increase_account_v1.rb +7 -31
  91. data/lib/webhookdb/replicator/increase_ach_transfer_v1.rb +5 -43
  92. data/lib/webhookdb/replicator/increase_app_v1.rb +78 -0
  93. data/lib/webhookdb/replicator/increase_check_transfer_v1.rb +23 -29
  94. data/lib/webhookdb/replicator/increase_event_v1.rb +41 -0
  95. data/lib/webhookdb/replicator/increase_limit_v1.rb +9 -34
  96. data/lib/webhookdb/replicator/increase_transaction_v1.rb +5 -30
  97. data/lib/webhookdb/replicator/increase_v1_mixin.rb +58 -78
  98. data/lib/webhookdb/replicator/increase_wire_transfer_v1.rb +5 -24
  99. data/lib/webhookdb/replicator/intercom_contact_v1.rb +51 -4
  100. data/lib/webhookdb/replicator/intercom_conversation_v1.rb +42 -6
  101. data/lib/webhookdb/replicator/intercom_marketplace_root_v1.rb +2 -13
  102. data/lib/webhookdb/replicator/intercom_v1_mixin.rb +20 -16
  103. data/lib/webhookdb/replicator/oauth_refresh_access_token_mixin.rb +1 -1
  104. data/lib/webhookdb/replicator/sponsy_v1_mixin.rb +1 -1
  105. data/lib/webhookdb/replicator/transistor_episode_v1.rb +17 -0
  106. data/lib/webhookdb/replicator/url_recorder_v1.rb +137 -0
  107. data/lib/webhookdb/replicator/webhook_request.rb +4 -0
  108. data/lib/webhookdb/replicator.rb +8 -0
  109. data/lib/webhookdb/role.rb +5 -2
  110. data/lib/webhookdb/saved_query.rb +23 -0
  111. data/lib/webhookdb/saved_view.rb +73 -0
  112. data/lib/webhookdb/sentry.rb +2 -0
  113. data/lib/webhookdb/service/entities.rb +0 -4
  114. data/lib/webhookdb/service/helpers.rb +5 -0
  115. data/lib/webhookdb/service/middleware.rb +9 -0
  116. data/lib/webhookdb/service/types.rb +10 -8
  117. data/lib/webhookdb/service/validators.rb +1 -2
  118. data/lib/webhookdb/service/view_api.rb +1 -1
  119. data/lib/webhookdb/service_integration.rb +17 -15
  120. data/lib/webhookdb/spec_helpers/shared_examples_for_replicators.rb +8 -8
  121. data/lib/webhookdb/spec_helpers/whdb.rb +3 -2
  122. data/lib/webhookdb/subscription.rb +2 -0
  123. data/lib/webhookdb/sync_target.rb +10 -2
  124. data/lib/webhookdb/tasks/message.rb +3 -1
  125. data/lib/webhookdb/version.rb +1 -1
  126. data/lib/webhookdb/webhook_subscription/delivery.rb +2 -0
  127. data/lib/webhookdb/webhook_subscription.rb +2 -0
  128. metadata +57 -9
  129. data/lib/webhookdb/admin_api/customers.rb +0 -63
  130. data/lib/webhookdb/admin_api/message_deliveries.rb +0 -61
  131. data/lib/webhookdb/admin_api/roles.rb +0 -15
@@ -8,6 +8,7 @@ require "webhookdb/webhook_subscription"
8
8
  # See WebhookSubscription for more details.
9
9
  class Webhookdb::WebhookSubscription::Delivery < Webhookdb::Postgres::Model(:webhook_subscription_deliveries)
10
10
  plugin :timestamps
11
+ plugin :text_searchable, terms: [:webhook_subscription]
11
12
 
12
13
  many_to_one :webhook_subscription, class: "Webhookdb::WebhookSubscription"
13
14
 
@@ -72,6 +73,7 @@ end
72
73
  # attempt_http_response_statuses | smallint[] | NOT NULL DEFAULT ARRAY[]::smallint[]
73
74
  # payload | jsonb | NOT NULL
74
75
  # webhook_subscription_id | integer | NOT NULL
76
+ # text_search | tsvector |
75
77
  # Indexes:
76
78
  # webhook_subscription_deliveries_pkey | PRIMARY KEY btree (id)
77
79
  # webhook_subscription_deliveries_webhook_subscription_id_index | btree (webhook_subscription_id)
@@ -23,6 +23,7 @@ require "webhookdb/jobs/webhook_subscription_delivery_attempt"
23
23
  #
24
24
  class Webhookdb::WebhookSubscription < Webhookdb::Postgres::Model(:webhook_subscriptions)
25
25
  plugin :timestamps
26
+ plugin :text_searchable, terms: [:organization, :service_integration, :deliver_to_url, :created_by]
26
27
  plugin :column_encryption do |enc|
27
28
  enc.column :webhook_secret
28
29
  end
@@ -212,6 +213,7 @@ end
212
213
  # updated_at | timestamp with time zone |
213
214
  # created_by_id | integer |
214
215
  # deactivated_at | timestamp with time zone |
216
+ # text_search | tsvector |
215
217
  # Indexes:
216
218
  # webhook_subscriptions_pkey | PRIMARY KEY btree (id)
217
219
  # webhook_subscriptions_opaque_id_key | UNIQUE btree (opaque_id)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webhookdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - WebhookDB
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-05 00:00:00.000000000 Z
11
+ date: 2024-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -472,6 +472,20 @@ dependencies:
472
472
  - - "~>"
473
473
  - !ruby/object:Gem::Version
474
474
  version: '3.2'
475
+ - !ruby/object:Gem::Dependency
476
+ name: rack-spa
477
+ requirement: !ruby/object:Gem::Requirement
478
+ requirements:
479
+ - - "~>"
480
+ - !ruby/object:Gem::Version
481
+ version: '0.11'
482
+ type: :runtime
483
+ prerelease: false
484
+ version_requirements: !ruby/object:Gem::Requirement
485
+ requirements:
486
+ - - "~>"
487
+ - !ruby/object:Gem::Version
488
+ version: '0.11'
475
489
  - !ruby/object:Gem::Dependency
476
490
  name: rack-ssl-enforcer
477
491
  requirement: !ruby/object:Gem::Requirement
@@ -548,28 +562,28 @@ dependencies:
548
562
  requirements:
549
563
  - - "~>"
550
564
  - !ruby/object:Gem::Version
551
- version: '5.15'
565
+ version: '5.17'
552
566
  type: :runtime
553
567
  prerelease: false
554
568
  version_requirements: !ruby/object:Gem::Requirement
555
569
  requirements:
556
570
  - - "~>"
557
571
  - !ruby/object:Gem::Version
558
- version: '5.15'
572
+ version: '5.17'
559
573
  - !ruby/object:Gem::Dependency
560
574
  name: sentry-sidekiq
561
575
  requirement: !ruby/object:Gem::Requirement
562
576
  requirements:
563
577
  - - "~>"
564
578
  - !ruby/object:Gem::Version
565
- version: '5.15'
579
+ version: '5.17'
566
580
  type: :runtime
567
581
  prerelease: false
568
582
  version_requirements: !ruby/object:Gem::Requirement
569
583
  requirements:
570
584
  - - "~>"
571
585
  - !ruby/object:Gem::Version
572
- version: '5.15'
586
+ version: '5.17'
573
587
  - !ruby/object:Gem::Dependency
574
588
  name: sequel
575
589
  requirement: !ruby/object:Gem::Requirement
@@ -689,6 +703,9 @@ dependencies:
689
703
  - - "~>"
690
704
  - !ruby/object:Gem::Version
691
705
  version: '1.6'
706
+ - - ">="
707
+ - !ruby/object:Gem::Version
708
+ version: 1.6.2
692
709
  type: :runtime
693
710
  prerelease: false
694
711
  version_requirements: !ruby/object:Gem::Requirement
@@ -696,6 +713,9 @@ dependencies:
696
713
  - - "~>"
697
714
  - !ruby/object:Gem::Version
698
715
  version: '1.6'
716
+ - - ">="
717
+ - !ruby/object:Gem::Version
718
+ version: 1.6.2
699
719
  - !ruby/object:Gem::Dependency
700
720
  name: sidekiq-cron
701
721
  requirement: !ruby/object:Gem::Requirement
@@ -782,6 +802,10 @@ executables: []
782
802
  extensions: []
783
803
  extra_rdoc_files: []
784
804
  files:
805
+ - admin-dist/assets/index-6aebf805.js
806
+ - admin-dist/favicon.ico
807
+ - admin-dist/index.html
808
+ - admin-dist/manifest.json
785
809
  - data/messages/layouts/blank.email.liquid
786
810
  - data/messages/layouts/minimal.email.liquid
787
811
  - data/messages/layouts/standard.email.liquid
@@ -791,8 +815,10 @@ files:
791
815
  - data/messages/partials/greeting.liquid
792
816
  - data/messages/partials/logo_header.liquid
793
817
  - data/messages/partials/signoff.liquid
818
+ - data/messages/replicators/url-recorder.liquid
794
819
  - data/messages/styles/v1.liquid
795
820
  - data/messages/templates/errors/icalendar_fetch.email.liquid
821
+ - data/messages/templates/errors/signalwire_send_sms.email.liquid
796
822
  - data/messages/templates/invite.email.liquid
797
823
  - data/messages/templates/new_customer.email.liquid
798
824
  - data/messages/templates/org_database_migration_finished.email.liquid
@@ -808,10 +834,13 @@ files:
808
834
  - data/messages/templates/verification.sms.liquid
809
835
  - data/messages/web/install-customer-login.liquid
810
836
  - data/messages/web/install-error.liquid
837
+ - data/messages/web/install-forbidden.liquid
838
+ - data/messages/web/install-org-chooser.liquid
811
839
  - data/messages/web/install-success.liquid
812
840
  - data/messages/web/install.liquid
813
841
  - data/messages/web/partials/footer.liquid
814
842
  - data/messages/web/partials/form_error.liquid
843
+ - data/messages/web/partials/head.liquid
815
844
  - data/messages/web/partials/header.liquid
816
845
  - data/messages/web/styles.liquid
817
846
  - data/windows_tz.txt
@@ -855,6 +884,10 @@ files:
855
884
  - db/migrations/038_webhookdb_api_key.rb
856
885
  - db/migrations/039_saved_query.rb
857
886
  - db/migrations/040_saved_query_fix_unique.rb
887
+ - db/migrations/041_views.rb
888
+ - db/migrations/042_sint_lock.rb
889
+ - db/migrations/043_text_search.rb
890
+ - db/migrations/044_oauth_session_token_cache.rb
858
891
  - integration/async_spec.rb
859
892
  - integration/auth_spec.rb
860
893
  - integration/database_spec.rb
@@ -864,15 +897,15 @@ files:
864
897
  - lib/amigo/durable_job.rb
865
898
  - lib/pry/clipboard.rb
866
899
  - lib/sequel/advisory_lock.rb
900
+ - lib/sequel/plugins/text_searchable.rb
901
+ - lib/sequel/text_searchable.rb
867
902
  - lib/webhookdb.rb
868
903
  - lib/webhookdb/admin.rb
869
904
  - lib/webhookdb/admin_api.rb
870
905
  - lib/webhookdb/admin_api/auth.rb
871
- - lib/webhookdb/admin_api/customers.rb
906
+ - lib/webhookdb/admin_api/data_provider.rb
872
907
  - lib/webhookdb/admin_api/database_documents.rb
873
908
  - lib/webhookdb/admin_api/entities.rb
874
- - lib/webhookdb/admin_api/message_deliveries.rb
875
- - lib/webhookdb/admin_api/roles.rb
876
909
  - lib/webhookdb/aggregate_result.rb
877
910
  - lib/webhookdb/api.rb
878
911
  - lib/webhookdb/api/auth.rb
@@ -886,6 +919,7 @@ files:
886
919
  - lib/webhookdb/api/organizations.rb
887
920
  - lib/webhookdb/api/replay.rb
888
921
  - lib/webhookdb/api/saved_queries.rb
922
+ - lib/webhookdb/api/saved_views.rb
889
923
  - lib/webhookdb/api/service_integrations.rb
890
924
  - lib/webhookdb/api/services.rb
891
925
  - lib/webhookdb/api/stripe.rb
@@ -902,6 +936,7 @@ files:
902
936
  - lib/webhookdb/async/scheduled_job.rb
903
937
  - lib/webhookdb/aws.rb
904
938
  - lib/webhookdb/backfill_job.rb
939
+ - lib/webhookdb/backfill_job/service_integration_lock.rb
905
940
  - lib/webhookdb/backfiller.rb
906
941
  - lib/webhookdb/cloudflare.rb
907
942
  - lib/webhookdb/connection_cache.rb
@@ -928,16 +963,20 @@ files:
928
963
  - lib/webhookdb/fixtures/database_documents.rb
929
964
  - lib/webhookdb/fixtures/faker.rb
930
965
  - lib/webhookdb/fixtures/logged_webhooks.rb
966
+ - lib/webhookdb/fixtures/message_bodies.rb
931
967
  - lib/webhookdb/fixtures/message_deliveries.rb
932
968
  - lib/webhookdb/fixtures/oauth_sessions.rb
933
969
  - lib/webhookdb/fixtures/organization_database_migrations.rb
934
970
  - lib/webhookdb/fixtures/organization_memberships.rb
935
971
  - lib/webhookdb/fixtures/organizations.rb
936
972
  - lib/webhookdb/fixtures/reset_codes.rb
973
+ - lib/webhookdb/fixtures/roles.rb
937
974
  - lib/webhookdb/fixtures/saved_queries.rb
975
+ - lib/webhookdb/fixtures/saved_views.rb
938
976
  - lib/webhookdb/fixtures/service_integrations.rb
939
977
  - lib/webhookdb/fixtures/subscriptions.rb
940
978
  - lib/webhookdb/fixtures/sync_targets.rb
979
+ - lib/webhookdb/fixtures/webhook_subscription_deliveries.rb
941
980
  - lib/webhookdb/fixtures/webhook_subscriptions.rb
942
981
  - lib/webhookdb/formatting.rb
943
982
  - lib/webhookdb/front.rb
@@ -961,8 +1000,10 @@ files:
961
1000
  - lib/webhookdb/jobs/developer_alert_handle.rb
962
1001
  - lib/webhookdb/jobs/durable_job_recheck_poller.rb
963
1002
  - lib/webhookdb/jobs/emailer.rb
1003
+ - lib/webhookdb/jobs/icalendar_delete_stale_cancelled_events.rb
964
1004
  - lib/webhookdb/jobs/icalendar_enqueue_syncs.rb
965
1005
  - lib/webhookdb/jobs/icalendar_sync.rb
1006
+ - lib/webhookdb/jobs/increase_event_handler.rb
966
1007
  - lib/webhookdb/jobs/logged_webhook_replay.rb
967
1008
  - lib/webhookdb/jobs/logged_webhook_resilient_replay.rb
968
1009
  - lib/webhookdb/jobs/message_dispatched.rb
@@ -999,6 +1040,7 @@ files:
999
1040
  - lib/webhookdb/message/template.rb
1000
1041
  - lib/webhookdb/message/transport.rb
1001
1042
  - lib/webhookdb/messages/error_icalendar_fetch.rb
1043
+ - lib/webhookdb/messages/error_signalwire_send_sms.rb
1002
1044
  - lib/webhookdb/messages/invite.rb
1003
1045
  - lib/webhookdb/messages/new_customer.rb
1004
1046
  - lib/webhookdb/messages/org_database_migration_finished.rb
@@ -1009,7 +1051,9 @@ files:
1009
1051
  - lib/webhookdb/microsoft_calendar.rb
1010
1052
  - lib/webhookdb/nextpax.rb
1011
1053
  - lib/webhookdb/oauth.rb
1054
+ - lib/webhookdb/oauth/fake_provider.rb
1012
1055
  - lib/webhookdb/oauth/front_provider.rb
1056
+ - lib/webhookdb/oauth/increase_provider.rb
1013
1057
  - lib/webhookdb/oauth/intercom_provider.rb
1014
1058
  - lib/webhookdb/oauth/session.rb
1015
1059
  - lib/webhookdb/organization.rb
@@ -1062,7 +1106,9 @@ files:
1062
1106
  - lib/webhookdb/replicator/increase_account_transfer_v1.rb
1063
1107
  - lib/webhookdb/replicator/increase_account_v1.rb
1064
1108
  - lib/webhookdb/replicator/increase_ach_transfer_v1.rb
1109
+ - lib/webhookdb/replicator/increase_app_v1.rb
1065
1110
  - lib/webhookdb/replicator/increase_check_transfer_v1.rb
1111
+ - lib/webhookdb/replicator/increase_event_v1.rb
1066
1112
  - lib/webhookdb/replicator/increase_limit_v1.rb
1067
1113
  - lib/webhookdb/replicator/increase_transaction_v1.rb
1068
1114
  - lib/webhookdb/replicator/increase_v1_mixin.rb
@@ -1105,10 +1151,12 @@ files:
1105
1151
  - lib/webhookdb/replicator/transistor_show_v1.rb
1106
1152
  - lib/webhookdb/replicator/transistor_v1_mixin.rb
1107
1153
  - lib/webhookdb/replicator/twilio_sms_v1.rb
1154
+ - lib/webhookdb/replicator/url_recorder_v1.rb
1108
1155
  - lib/webhookdb/replicator/webhook_request.rb
1109
1156
  - lib/webhookdb/replicator/webhookdb_customer_v1.rb
1110
1157
  - lib/webhookdb/role.rb
1111
1158
  - lib/webhookdb/saved_query.rb
1159
+ - lib/webhookdb/saved_view.rb
1112
1160
  - lib/webhookdb/sentry.rb
1113
1161
  - lib/webhookdb/service.rb
1114
1162
  - lib/webhookdb/service/auth.rb
@@ -1,63 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "grape"
4
-
5
- require "webhookdb/admin_api"
6
-
7
- class Webhookdb::AdminAPI::Customers < Webhookdb::AdminAPI::V1
8
- resource :customers do
9
- desc "Return all customers, newest first"
10
- params do
11
- use :pagination
12
- use :ordering, model: Webhookdb::Customer
13
- use :searchable
14
- end
15
- get do
16
- ds = Webhookdb::Customer.dataset
17
- if (email_like = search_param_to_sql(params, :email))
18
- name_like = search_param_to_sql(params, :name)
19
- ds = ds.where(email_like | name_like)
20
- end
21
-
22
- ds = order(ds, params)
23
- ds = paginate(ds, params)
24
- present_collection ds, with: Webhookdb::AdminAPI::CustomerEntity
25
- end
26
-
27
- route_param :id, type: Integer do
28
- desc "Return the customer"
29
- get do
30
- (customer = Webhookdb::Customer[params[:id]]) or not_found!
31
- present customer, with: Webhookdb::AdminAPI::DetailedCustomerEntity
32
- end
33
-
34
- desc "Update the customer"
35
- params do
36
- optional :name, type: String
37
- optional :note, type: String
38
- optional :email, type: String
39
- optional :roles, type: [String]
40
- end
41
- post do
42
- fields = params
43
- (customer = Webhookdb::Customer[fields[:id]]) or not_found!
44
- customer.db.transaction do
45
- if (roles = fields.delete(:roles))
46
- customer.remove_all_roles
47
- roles.uniq.each { |r| customer.add_role(Webhookdb::Role[name: r]) }
48
- end
49
- if fields.key?(:email_verified)
50
- customer.email_verified_at = fields.delete(:email_verified) ? Time.now : nil
51
- end
52
- if fields.key?(:phone_verified)
53
- customer.phone_verified_at = fields.delete(:phone_verified) ? Time.now : nil
54
- end
55
- set_declared(customer, params)
56
- customer.save_changes
57
- end
58
- status 200
59
- present customer, with: Webhookdb::AdminAPI::DetailedCustomerEntity
60
- end
61
- end
62
- end
63
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "grape"
4
-
5
- require "webhookdb/admin_api"
6
-
7
- class Webhookdb::AdminAPI::MessageDeliveries < Webhookdb::AdminAPI::V1
8
- helpers do
9
- def lookup_delivery(params)
10
- (batch = Webhookdb::Message::Delivery[params[:id]]) or not_found!
11
- return batch
12
- end
13
- end
14
-
15
- resource :message_deliveries do
16
- desc "Return all message deliveries, newest first"
17
- params do
18
- use :pagination
19
- use :ordering, model: Webhookdb::Message::Delivery
20
- use :searchable
21
- end
22
- get do
23
- ds = Webhookdb::Message::Delivery.dataset
24
- if (to_like = search_param_to_sql(params, :to))
25
- criteria = to_like | search_param_to_sql(params, :template)
26
- ds = ds.where(criteria)
27
- end
28
- ds = order(ds, params)
29
- ds = paginate(ds, params)
30
- present_collection ds, with: Webhookdb::AdminAPI::MessageDeliveryEntity
31
- end
32
-
33
- desc "Return the delivery with the last ID"
34
- get :last do
35
- delivery = Webhookdb::Message::Delivery.last
36
- present delivery, with: Webhookdb::AdminAPI::MessageDeliveryWithBodiesEntity
37
- end
38
-
39
- route_param :id, type: Integer do
40
- desc "Return the delivery"
41
- get do
42
- delivery = lookup_delivery(params)
43
- present delivery, with: Webhookdb::AdminAPI::MessageDeliveryWithBodiesEntity
44
- end
45
- end
46
- end
47
-
48
- resource :customers do
49
- route_param :id, type: Integer do
50
- resource :message_deliveries do
51
- desc "Return all message deliveries for customer the given customers, as recipients or to their emails"
52
- get do
53
- # rubocop:disable Layout/LineLength
54
- ds = Webhookdb::Message::Delivery.to_customers(Webhookdb::Customer.where(id: params[:id])).order(Sequel.desc(:id))
55
- # rubocop:enable Layout/LineLength
56
- present_collection ds, with: Webhookdb::AdminAPI::MessageDeliveryEntity
57
- end
58
- end
59
- end
60
- end
61
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "grape"
4
-
5
- require "webhookdb/admin_api"
6
-
7
- class Webhookdb::AdminAPI::Roles < Webhookdb::AdminAPI::V1
8
- resource :roles do
9
- desc "Return all roles, ordered by name"
10
- get do
11
- ds = Webhookdb::Role.dataset.order(:name)
12
- present_collection ds, with: Webhookdb::AdminAPI::RoleEntity
13
- end
14
- end
15
- end