webhookdb 1.2.1 → 1.3.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 (132) 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/040_saved_query_fix_unique.rb +17 -0
  17. data/db/migrations/041_views.rb +20 -0
  18. data/db/migrations/042_sint_lock.rb +10 -0
  19. data/db/migrations/043_text_search.rb +28 -0
  20. data/db/migrations/044_oauth_session_token_cache.rb +21 -0
  21. data/integration/auth_spec.rb +2 -2
  22. data/lib/sequel/plugins/text_searchable.rb +165 -0
  23. data/lib/sequel/text_searchable.rb +42 -0
  24. data/lib/webhookdb/admin_api/auth.rb +24 -3
  25. data/lib/webhookdb/admin_api/data_provider.rb +196 -0
  26. data/lib/webhookdb/admin_api/entities.rb +143 -28
  27. data/lib/webhookdb/admin_api.rb +0 -2
  28. data/lib/webhookdb/api/auth.rb +5 -6
  29. data/lib/webhookdb/api/db.rb +31 -6
  30. data/lib/webhookdb/api/entities.rb +7 -1
  31. data/lib/webhookdb/api/helpers.rb +6 -25
  32. data/lib/webhookdb/api/install.rb +204 -79
  33. data/lib/webhookdb/api/organizations.rb +14 -12
  34. data/lib/webhookdb/api/saved_queries.rb +10 -3
  35. data/lib/webhookdb/api/saved_views.rb +99 -0
  36. data/lib/webhookdb/api/service_integrations.rb +15 -9
  37. data/lib/webhookdb/api/subscriptions.rb +3 -1
  38. data/lib/webhookdb/api/sync_targets.rb +9 -7
  39. data/lib/webhookdb/api/system.rb +1 -0
  40. data/lib/webhookdb/api/webhook_subscriptions.rb +3 -1
  41. data/lib/webhookdb/apps.rb +30 -7
  42. data/lib/webhookdb/async/audit_logger.rb +2 -0
  43. data/lib/webhookdb/async.rb +5 -0
  44. data/lib/webhookdb/backfill_job/service_integration_lock.rb +22 -0
  45. data/lib/webhookdb/backfill_job.rb +9 -0
  46. data/lib/webhookdb/customer.rb +5 -0
  47. data/lib/webhookdb/database_document.rb +1 -1
  48. data/lib/webhookdb/db_adapter/default_sql.rb +1 -1
  49. data/lib/webhookdb/db_adapter.rb +20 -4
  50. data/lib/webhookdb/fixtures/message_bodies.rb +34 -0
  51. data/lib/webhookdb/fixtures/organizations.rb +5 -0
  52. data/lib/webhookdb/fixtures/roles.rb +14 -0
  53. data/lib/webhookdb/fixtures/saved_views.rb +25 -0
  54. data/lib/webhookdb/fixtures/webhook_subscription_deliveries.rb +18 -0
  55. data/lib/webhookdb/http.rb +8 -2
  56. data/lib/webhookdb/icalendar.rb +3 -0
  57. data/lib/webhookdb/idempotency.rb +69 -22
  58. data/lib/webhookdb/increase.rb +69 -21
  59. data/lib/webhookdb/intercom.rb +10 -3
  60. data/lib/webhookdb/jobs/backfill.rb +3 -1
  61. data/lib/webhookdb/jobs/emailer.rb +0 -1
  62. data/lib/webhookdb/jobs/icalendar_delete_stale_cancelled_events.rb +19 -0
  63. data/lib/webhookdb/jobs/icalendar_enqueue_syncs.rb +1 -1
  64. data/lib/webhookdb/jobs/icalendar_sync.rb +1 -1
  65. data/lib/webhookdb/jobs/increase_event_handler.rb +20 -0
  66. data/lib/webhookdb/jobs/scheduled_backfills.rb +2 -1
  67. data/lib/webhookdb/jobs/sync_target_run_sync.rb +3 -1
  68. data/lib/webhookdb/message/body.rb +6 -4
  69. data/lib/webhookdb/message/delivery.rb +2 -0
  70. data/lib/webhookdb/messages/error_icalendar_fetch.rb +1 -2
  71. data/lib/webhookdb/messages/error_signalwire_send_sms.rb +48 -0
  72. data/lib/webhookdb/oauth/fake_provider.rb +44 -0
  73. data/lib/webhookdb/oauth/front_provider.rb +1 -2
  74. data/lib/webhookdb/oauth/increase_provider.rb +80 -0
  75. data/lib/webhookdb/oauth/intercom_provider.rb +3 -11
  76. data/lib/webhookdb/oauth/session.rb +20 -0
  77. data/lib/webhookdb/oauth.rb +7 -21
  78. data/lib/webhookdb/organization/alerting.rb +2 -0
  79. data/lib/webhookdb/organization/database_migration.rb +3 -0
  80. data/lib/webhookdb/organization.rb +37 -6
  81. data/lib/webhookdb/organization_membership.rb +14 -7
  82. data/lib/webhookdb/postgres.rb +2 -0
  83. data/lib/webhookdb/replicator/base.rb +1 -0
  84. data/lib/webhookdb/replicator/docgen.rb +9 -1
  85. data/lib/webhookdb/replicator/fake.rb +2 -3
  86. data/lib/webhookdb/replicator/front_signalwire_message_channel_app_v1.rb +49 -14
  87. data/lib/webhookdb/replicator/icalendar_calendar_v1.rb +97 -17
  88. data/lib/webhookdb/replicator/icalendar_event_v1.rb +104 -2
  89. data/lib/webhookdb/replicator/increase_account_number_v1.rb +6 -43
  90. data/lib/webhookdb/replicator/increase_account_transfer_v1.rb +7 -24
  91. data/lib/webhookdb/replicator/increase_account_v1.rb +7 -31
  92. data/lib/webhookdb/replicator/increase_ach_transfer_v1.rb +5 -43
  93. data/lib/webhookdb/replicator/increase_app_v1.rb +78 -0
  94. data/lib/webhookdb/replicator/increase_check_transfer_v1.rb +23 -29
  95. data/lib/webhookdb/replicator/increase_event_v1.rb +41 -0
  96. data/lib/webhookdb/replicator/increase_limit_v1.rb +9 -34
  97. data/lib/webhookdb/replicator/increase_transaction_v1.rb +5 -30
  98. data/lib/webhookdb/replicator/increase_v1_mixin.rb +58 -78
  99. data/lib/webhookdb/replicator/increase_wire_transfer_v1.rb +5 -24
  100. data/lib/webhookdb/replicator/intercom_contact_v1.rb +51 -4
  101. data/lib/webhookdb/replicator/intercom_conversation_v1.rb +42 -6
  102. data/lib/webhookdb/replicator/intercom_marketplace_root_v1.rb +2 -13
  103. data/lib/webhookdb/replicator/intercom_v1_mixin.rb +20 -16
  104. data/lib/webhookdb/replicator/oauth_refresh_access_token_mixin.rb +1 -1
  105. data/lib/webhookdb/replicator/sponsy_v1_mixin.rb +1 -1
  106. data/lib/webhookdb/replicator/transistor_episode_v1.rb +17 -0
  107. data/lib/webhookdb/replicator/url_recorder_v1.rb +137 -0
  108. data/lib/webhookdb/replicator/webhook_request.rb +4 -0
  109. data/lib/webhookdb/replicator.rb +8 -0
  110. data/lib/webhookdb/role.rb +5 -2
  111. data/lib/webhookdb/saved_query.rb +23 -0
  112. data/lib/webhookdb/saved_view.rb +73 -0
  113. data/lib/webhookdb/sentry.rb +2 -0
  114. data/lib/webhookdb/service/entities.rb +0 -4
  115. data/lib/webhookdb/service/helpers.rb +5 -0
  116. data/lib/webhookdb/service/middleware.rb +17 -0
  117. data/lib/webhookdb/service/types.rb +10 -8
  118. data/lib/webhookdb/service/validators.rb +1 -2
  119. data/lib/webhookdb/service/view_api.rb +1 -1
  120. data/lib/webhookdb/service_integration.rb +17 -15
  121. data/lib/webhookdb/spec_helpers/shared_examples_for_replicators.rb +8 -8
  122. data/lib/webhookdb/spec_helpers/whdb.rb +3 -2
  123. data/lib/webhookdb/subscription.rb +2 -0
  124. data/lib/webhookdb/sync_target.rb +10 -2
  125. data/lib/webhookdb/tasks/message.rb +3 -1
  126. data/lib/webhookdb/version.rb +1 -1
  127. data/lib/webhookdb/webhook_subscription/delivery.rb +2 -0
  128. data/lib/webhookdb/webhook_subscription.rb +2 -0
  129. metadata +58 -9
  130. data/lib/webhookdb/admin_api/customers.rb +0 -63
  131. data/lib/webhookdb/admin_api/message_deliveries.rb +0 -61
  132. 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.1
4
+ version: 1.3.0
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
@@ -854,6 +883,11 @@ files:
854
883
  - db/migrations/037_oauth_used.rb
855
884
  - db/migrations/038_webhookdb_api_key.rb
856
885
  - db/migrations/039_saved_query.rb
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
857
891
  - integration/async_spec.rb
858
892
  - integration/auth_spec.rb
859
893
  - integration/database_spec.rb
@@ -863,15 +897,15 @@ files:
863
897
  - lib/amigo/durable_job.rb
864
898
  - lib/pry/clipboard.rb
865
899
  - lib/sequel/advisory_lock.rb
900
+ - lib/sequel/plugins/text_searchable.rb
901
+ - lib/sequel/text_searchable.rb
866
902
  - lib/webhookdb.rb
867
903
  - lib/webhookdb/admin.rb
868
904
  - lib/webhookdb/admin_api.rb
869
905
  - lib/webhookdb/admin_api/auth.rb
870
- - lib/webhookdb/admin_api/customers.rb
906
+ - lib/webhookdb/admin_api/data_provider.rb
871
907
  - lib/webhookdb/admin_api/database_documents.rb
872
908
  - lib/webhookdb/admin_api/entities.rb
873
- - lib/webhookdb/admin_api/message_deliveries.rb
874
- - lib/webhookdb/admin_api/roles.rb
875
909
  - lib/webhookdb/aggregate_result.rb
876
910
  - lib/webhookdb/api.rb
877
911
  - lib/webhookdb/api/auth.rb
@@ -885,6 +919,7 @@ files:
885
919
  - lib/webhookdb/api/organizations.rb
886
920
  - lib/webhookdb/api/replay.rb
887
921
  - lib/webhookdb/api/saved_queries.rb
922
+ - lib/webhookdb/api/saved_views.rb
888
923
  - lib/webhookdb/api/service_integrations.rb
889
924
  - lib/webhookdb/api/services.rb
890
925
  - lib/webhookdb/api/stripe.rb
@@ -901,6 +936,7 @@ files:
901
936
  - lib/webhookdb/async/scheduled_job.rb
902
937
  - lib/webhookdb/aws.rb
903
938
  - lib/webhookdb/backfill_job.rb
939
+ - lib/webhookdb/backfill_job/service_integration_lock.rb
904
940
  - lib/webhookdb/backfiller.rb
905
941
  - lib/webhookdb/cloudflare.rb
906
942
  - lib/webhookdb/connection_cache.rb
@@ -927,16 +963,20 @@ files:
927
963
  - lib/webhookdb/fixtures/database_documents.rb
928
964
  - lib/webhookdb/fixtures/faker.rb
929
965
  - lib/webhookdb/fixtures/logged_webhooks.rb
966
+ - lib/webhookdb/fixtures/message_bodies.rb
930
967
  - lib/webhookdb/fixtures/message_deliveries.rb
931
968
  - lib/webhookdb/fixtures/oauth_sessions.rb
932
969
  - lib/webhookdb/fixtures/organization_database_migrations.rb
933
970
  - lib/webhookdb/fixtures/organization_memberships.rb
934
971
  - lib/webhookdb/fixtures/organizations.rb
935
972
  - lib/webhookdb/fixtures/reset_codes.rb
973
+ - lib/webhookdb/fixtures/roles.rb
936
974
  - lib/webhookdb/fixtures/saved_queries.rb
975
+ - lib/webhookdb/fixtures/saved_views.rb
937
976
  - lib/webhookdb/fixtures/service_integrations.rb
938
977
  - lib/webhookdb/fixtures/subscriptions.rb
939
978
  - lib/webhookdb/fixtures/sync_targets.rb
979
+ - lib/webhookdb/fixtures/webhook_subscription_deliveries.rb
940
980
  - lib/webhookdb/fixtures/webhook_subscriptions.rb
941
981
  - lib/webhookdb/formatting.rb
942
982
  - lib/webhookdb/front.rb
@@ -960,8 +1000,10 @@ files:
960
1000
  - lib/webhookdb/jobs/developer_alert_handle.rb
961
1001
  - lib/webhookdb/jobs/durable_job_recheck_poller.rb
962
1002
  - lib/webhookdb/jobs/emailer.rb
1003
+ - lib/webhookdb/jobs/icalendar_delete_stale_cancelled_events.rb
963
1004
  - lib/webhookdb/jobs/icalendar_enqueue_syncs.rb
964
1005
  - lib/webhookdb/jobs/icalendar_sync.rb
1006
+ - lib/webhookdb/jobs/increase_event_handler.rb
965
1007
  - lib/webhookdb/jobs/logged_webhook_replay.rb
966
1008
  - lib/webhookdb/jobs/logged_webhook_resilient_replay.rb
967
1009
  - lib/webhookdb/jobs/message_dispatched.rb
@@ -998,6 +1040,7 @@ files:
998
1040
  - lib/webhookdb/message/template.rb
999
1041
  - lib/webhookdb/message/transport.rb
1000
1042
  - lib/webhookdb/messages/error_icalendar_fetch.rb
1043
+ - lib/webhookdb/messages/error_signalwire_send_sms.rb
1001
1044
  - lib/webhookdb/messages/invite.rb
1002
1045
  - lib/webhookdb/messages/new_customer.rb
1003
1046
  - lib/webhookdb/messages/org_database_migration_finished.rb
@@ -1008,7 +1051,9 @@ files:
1008
1051
  - lib/webhookdb/microsoft_calendar.rb
1009
1052
  - lib/webhookdb/nextpax.rb
1010
1053
  - lib/webhookdb/oauth.rb
1054
+ - lib/webhookdb/oauth/fake_provider.rb
1011
1055
  - lib/webhookdb/oauth/front_provider.rb
1056
+ - lib/webhookdb/oauth/increase_provider.rb
1012
1057
  - lib/webhookdb/oauth/intercom_provider.rb
1013
1058
  - lib/webhookdb/oauth/session.rb
1014
1059
  - lib/webhookdb/organization.rb
@@ -1061,7 +1106,9 @@ files:
1061
1106
  - lib/webhookdb/replicator/increase_account_transfer_v1.rb
1062
1107
  - lib/webhookdb/replicator/increase_account_v1.rb
1063
1108
  - lib/webhookdb/replicator/increase_ach_transfer_v1.rb
1109
+ - lib/webhookdb/replicator/increase_app_v1.rb
1064
1110
  - lib/webhookdb/replicator/increase_check_transfer_v1.rb
1111
+ - lib/webhookdb/replicator/increase_event_v1.rb
1065
1112
  - lib/webhookdb/replicator/increase_limit_v1.rb
1066
1113
  - lib/webhookdb/replicator/increase_transaction_v1.rb
1067
1114
  - lib/webhookdb/replicator/increase_v1_mixin.rb
@@ -1104,10 +1151,12 @@ files:
1104
1151
  - lib/webhookdb/replicator/transistor_show_v1.rb
1105
1152
  - lib/webhookdb/replicator/transistor_v1_mixin.rb
1106
1153
  - lib/webhookdb/replicator/twilio_sms_v1.rb
1154
+ - lib/webhookdb/replicator/url_recorder_v1.rb
1107
1155
  - lib/webhookdb/replicator/webhook_request.rb
1108
1156
  - lib/webhookdb/replicator/webhookdb_customer_v1.rb
1109
1157
  - lib/webhookdb/role.rb
1110
1158
  - lib/webhookdb/saved_query.rb
1159
+ - lib/webhookdb/saved_view.rb
1111
1160
  - lib/webhookdb/sentry.rb
1112
1161
  - lib/webhookdb/service.rb
1113
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