insion 1.0.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 (75) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.md +21 -0
  3. data/README.md +172 -0
  4. data/changelog.md +4 -0
  5. data/lib/Insion/client.rb +404 -0
  6. data/lib/Insion/environment.rb +7 -0
  7. data/lib/Insion/errors/api_error.rb +8 -0
  8. data/lib/Insion/errors/client_error.rb +17 -0
  9. data/lib/Insion/errors/redirect_error.rb +8 -0
  10. data/lib/Insion/errors/response_error.rb +42 -0
  11. data/lib/Insion/errors/server_error.rb +11 -0
  12. data/lib/Insion/errors/timeout_error.rb +8 -0
  13. data/lib/Insion/internal/errors/constraint_error.rb +10 -0
  14. data/lib/Insion/internal/errors/type_error.rb +10 -0
  15. data/lib/Insion/internal/http/base_request.rb +51 -0
  16. data/lib/Insion/internal/http/raw_client.rb +248 -0
  17. data/lib/Insion/internal/iterators/cursor_item_iterator.rb +28 -0
  18. data/lib/Insion/internal/iterators/cursor_page_iterator.rb +63 -0
  19. data/lib/Insion/internal/iterators/item_iterator.rb +65 -0
  20. data/lib/Insion/internal/iterators/offset_item_iterator.rb +30 -0
  21. data/lib/Insion/internal/iterators/offset_page_iterator.rb +103 -0
  22. data/lib/Insion/internal/json/request.rb +41 -0
  23. data/lib/Insion/internal/json/serializable.rb +25 -0
  24. data/lib/Insion/internal/multipart/multipart_encoder.rb +141 -0
  25. data/lib/Insion/internal/multipart/multipart_form_data.rb +78 -0
  26. data/lib/Insion/internal/multipart/multipart_form_data_part.rb +51 -0
  27. data/lib/Insion/internal/multipart/multipart_request.rb +40 -0
  28. data/lib/Insion/internal/types/array.rb +47 -0
  29. data/lib/Insion/internal/types/boolean.rb +34 -0
  30. data/lib/Insion/internal/types/enum.rb +56 -0
  31. data/lib/Insion/internal/types/hash.rb +36 -0
  32. data/lib/Insion/internal/types/model/field.rb +38 -0
  33. data/lib/Insion/internal/types/model.rb +208 -0
  34. data/lib/Insion/internal/types/type.rb +35 -0
  35. data/lib/Insion/internal/types/union.rb +161 -0
  36. data/lib/Insion/internal/types/unknown.rb +15 -0
  37. data/lib/Insion/internal/types/utils.rb +116 -0
  38. data/lib/Insion/types/content.rb +13 -0
  39. data/lib/Insion/types/content_external_urls.rb +13 -0
  40. data/lib/Insion/types/create_appeal_response.rb +9 -0
  41. data/lib/Insion/types/create_appeal_response_data.rb +19 -0
  42. data/lib/Insion/types/create_appeal_response_data_action_status.rb +13 -0
  43. data/lib/Insion/types/delete_api_v1ingest_request.rb +9 -0
  44. data/lib/Insion/types/error_response.rb +9 -0
  45. data/lib/Insion/types/error_response_error.rb +9 -0
  46. data/lib/Insion/types/get_api_v1records_record_id_request.rb +9 -0
  47. data/lib/Insion/types/get_api_v1records_request.rb +21 -0
  48. data/lib/Insion/types/get_api_v1records_request_status.rb +12 -0
  49. data/lib/Insion/types/get_api_v1users_request.rb +21 -0
  50. data/lib/Insion/types/get_api_v1users_request_status.rb +13 -0
  51. data/lib/Insion/types/get_api_v1users_user_id_request.rb +9 -0
  52. data/lib/Insion/types/ingest_record_request.rb +23 -0
  53. data/lib/Insion/types/ingest_record_response.rb +15 -0
  54. data/lib/Insion/types/ingest_user_response.rb +11 -0
  55. data/lib/Insion/types/list_records_response.rb +11 -0
  56. data/lib/Insion/types/list_users_response.rb +11 -0
  57. data/lib/Insion/types/metadata.rb +23 -0
  58. data/lib/Insion/types/moderate_request.rb +23 -0
  59. data/lib/Insion/types/moderate_response.rb +21 -0
  60. data/lib/Insion/types/moderate_response_status.rb +12 -0
  61. data/lib/Insion/types/post_api_v1users_user_id_create_appeal_request.rb +11 -0
  62. data/lib/Insion/types/record.rb +35 -0
  63. data/lib/Insion/types/record_input.rb +21 -0
  64. data/lib/Insion/types/record_moderation_status.rb +12 -0
  65. data/lib/Insion/types/record_response.rb +9 -0
  66. data/lib/Insion/types/success_response.rb +9 -0
  67. data/lib/Insion/types/user.rb +33 -0
  68. data/lib/Insion/types/user_action_status.rb +13 -0
  69. data/lib/Insion/types/user_input.rb +23 -0
  70. data/lib/Insion/types/user_response.rb +9 -0
  71. data/lib/Insion/version.rb +5 -0
  72. data/lib/Insion.rb +72 -0
  73. data/lib/insion.rb +4 -0
  74. data/reference.md +676 -0
  75. metadata +121 -0
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ class GetAPIV1UsersRequest < Internal::Types::Model
6
+ field :limit, -> { Integer }, optional: true, nullable: false
7
+
8
+ field :starting_after, -> { String }, optional: true, nullable: false
9
+
10
+ field :ending_before, -> { String }, optional: true, nullable: false
11
+
12
+ field :client_id, -> { String }, optional: true, nullable: false, api_name: "clientId"
13
+
14
+ field :email, -> { String }, optional: true, nullable: false
15
+
16
+ field :status, -> { Insion::Types::GetAPIV1UsersRequestStatus }, optional: true, nullable: false
17
+
18
+ field :user, -> { String }, optional: true, nullable: false
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ module GetAPIV1UsersRequestStatus
6
+ extend Insion::Internal::Types::Enum
7
+
8
+ COMPLIANT = "Compliant"
9
+ SUSPENDED = "Suspended"
10
+ BANNED = "Banned"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ class GetAPIV1UsersUserIDRequest < Internal::Types::Model
6
+ field :user_id, -> { String }, optional: false, nullable: false, api_name: "userId"
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ module IngestRecordRequest
6
+ # IngestRecordRequest is an alias for RecordInput
7
+
8
+ # @option str [String]
9
+ #
10
+ # @return [untyped]
11
+ def self.load(str)
12
+ ::JSON.parse(str)
13
+ end
14
+
15
+ # @option value [untyped]
16
+ #
17
+ # @return [String]
18
+ def self.dump(value)
19
+ ::JSON.generate(value)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ class IngestRecordResponse < Internal::Types::Model
6
+ field :message, -> { String }, optional: false, nullable: false
7
+
8
+ field :id, -> { String }, optional: false, nullable: false
9
+
10
+ field :moderation, -> { String }, optional: false, nullable: true
11
+
12
+ field :user, -> { String }, optional: true, nullable: false
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ class IngestUserResponse < Internal::Types::Model
6
+ field :message, -> { String }, optional: false, nullable: false
7
+
8
+ field :id, -> { String }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ class ListRecordsResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Insion::Types::Record] }, optional: false, nullable: false
7
+
8
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ class ListUsersResponse < Internal::Types::Model
6
+ field :data, -> { Internal::Types::Array[Insion::Types::User] }, optional: false, nullable: false
7
+
8
+ field :has_more, -> { Internal::Types::Boolean }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ module Metadata
6
+ # Metadata is an alias for Hash
7
+
8
+ # @option str [String]
9
+ #
10
+ # @return [untyped]
11
+ def self.load(str)
12
+ ::JSON.parse(str)
13
+ end
14
+
15
+ # @option value [untyped]
16
+ #
17
+ # @return [String]
18
+ def self.dump(value)
19
+ ::JSON.generate(value)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ class ModerateRequest < Internal::Types::Model
6
+ field :passthrough, -> { Internal::Types::Boolean }, optional: true, nullable: false
7
+
8
+ field :client_id, -> { String }, optional: false, nullable: false, api_name: "clientId"
9
+
10
+ field :client_url, -> { String }, optional: true, nullable: false, api_name: "clientUrl"
11
+
12
+ field :name, -> { String }, optional: false, nullable: false
13
+
14
+ field :entity, -> { String }, optional: false, nullable: false
15
+
16
+ field :content, -> { Insion::Types::Content }, optional: false, nullable: false
17
+
18
+ field :metadata, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false
19
+
20
+ field :user, -> { Insion::Types::UserInput }, optional: true, nullable: false
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ class ModerateResponse < Internal::Types::Model
6
+ field :id, -> { String }, optional: false, nullable: false
7
+
8
+ field :status, -> { Insion::Types::ModerateResponseStatus }, optional: false, nullable: false
9
+
10
+ field :moderation, -> { String }, optional: false, nullable: false
11
+
12
+ field :user, -> { String }, optional: true, nullable: false
13
+
14
+ field :message, -> { String }, optional: false, nullable: false
15
+
16
+ field :flagged, -> { Internal::Types::Boolean }, optional: false, nullable: false
17
+
18
+ field :category_ids, -> { Internal::Types::Array[String] }, optional: false, nullable: false, api_name: "categoryIds"
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ module ModerateResponseStatus
6
+ extend Insion::Internal::Types::Enum
7
+
8
+ COMPLIANT = "Compliant"
9
+ FLAGGED = "Flagged"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ class PostAPIV1UsersUserIDCreateAppealRequest < Internal::Types::Model
6
+ field :user_id, -> { String }, optional: false, nullable: false, api_name: "userId"
7
+
8
+ field :text, -> { String }, optional: false, nullable: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ class Record < Internal::Types::Model
6
+ field :id, -> { String }, optional: false, nullable: false
7
+
8
+ field :client_id, -> { String }, optional: false, nullable: false, api_name: "clientId"
9
+
10
+ field :client_url, -> { String }, optional: true, nullable: false, api_name: "clientUrl"
11
+
12
+ field :name, -> { String }, optional: false, nullable: false
13
+
14
+ field :entity, -> { String }, optional: false, nullable: false
15
+
16
+ field :protected, -> { Internal::Types::Boolean }, optional: false, nullable: false
17
+
18
+ field :metadata, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false
19
+
20
+ field :created_at, -> { String }, optional: false, nullable: false, api_name: "createdAt"
21
+
22
+ field :updated_at, -> { String }, optional: false, nullable: false, api_name: "updatedAt"
23
+
24
+ field :moderation_status, -> { Insion::Types::RecordModerationStatus }, optional: true, nullable: false, api_name: "moderationStatus"
25
+
26
+ field :moderation_status_created_at, -> { String }, optional: true, nullable: false, api_name: "moderationStatusCreatedAt"
27
+
28
+ field :moderation_pending, -> { Internal::Types::Boolean }, optional: false, nullable: false, api_name: "moderationPending"
29
+
30
+ field :moderation_pending_created_at, -> { String }, optional: true, nullable: false, api_name: "moderationPendingCreatedAt"
31
+
32
+ field :user, -> { String }, optional: true, nullable: false
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ class RecordInput < Internal::Types::Model
6
+ field :client_id, -> { String }, optional: false, nullable: false, api_name: "clientId"
7
+
8
+ field :client_url, -> { String }, optional: true, nullable: false, api_name: "clientUrl"
9
+
10
+ field :name, -> { String }, optional: false, nullable: false
11
+
12
+ field :entity, -> { String }, optional: false, nullable: false
13
+
14
+ field :content, -> { Insion::Types::Content }, optional: false, nullable: false
15
+
16
+ field :metadata, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false
17
+
18
+ field :user, -> { Insion::Types::UserInput }, optional: true, nullable: false
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ module RecordModerationStatus
6
+ extend Insion::Internal::Types::Enum
7
+
8
+ COMPLIANT = "Compliant"
9
+ FLAGGED = "Flagged"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ class RecordResponse < Internal::Types::Model
6
+ field :data, -> { Insion::Types::Record }, optional: false, nullable: false
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ class SuccessResponse < Internal::Types::Model
6
+ field :message, -> { String }, optional: false, nullable: false
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ class User < Internal::Types::Model
6
+ field :id, -> { String }, optional: false, nullable: false
7
+
8
+ field :client_id, -> { String }, optional: false, nullable: false, api_name: "clientId"
9
+
10
+ field :client_url, -> { String }, optional: true, nullable: false, api_name: "clientUrl"
11
+
12
+ field :email, -> { String }, optional: true, nullable: false
13
+
14
+ field :name, -> { String }, optional: true, nullable: false
15
+
16
+ field :username, -> { String }, optional: true, nullable: false
17
+
18
+ field :protected, -> { Internal::Types::Boolean }, optional: false, nullable: false
19
+
20
+ field :metadata, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false
21
+
22
+ field :created_at, -> { String }, optional: false, nullable: false, api_name: "createdAt"
23
+
24
+ field :updated_at, -> { String }, optional: false, nullable: false, api_name: "updatedAt"
25
+
26
+ field :action_status, -> { Insion::Types::UserActionStatus }, optional: true, nullable: false, api_name: "actionStatus"
27
+
28
+ field :action_status_created_at, -> { String }, optional: true, nullable: false, api_name: "actionStatusCreatedAt"
29
+
30
+ field :appeal_url, -> { String }, optional: false, nullable: true, api_name: "appealUrl"
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ module UserActionStatus
6
+ extend Insion::Internal::Types::Enum
7
+
8
+ COMPLIANT = "Compliant"
9
+ SUSPENDED = "Suspended"
10
+ BANNED = "Banned"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ class UserInput < Internal::Types::Model
6
+ field :client_id, -> { String }, optional: false, nullable: false, api_name: "clientId"
7
+
8
+ field :client_url, -> { String }, optional: true, nullable: false, api_name: "clientUrl"
9
+
10
+ field :stripe_account_id, -> { String }, optional: true, nullable: false, api_name: "stripeAccountId"
11
+
12
+ field :email, -> { String }, optional: true, nullable: false
13
+
14
+ field :name, -> { String }, optional: true, nullable: false
15
+
16
+ field :username, -> { String }, optional: true, nullable: false
17
+
18
+ field :protected, -> { Internal::Types::Boolean }, optional: true, nullable: false
19
+
20
+ field :metadata, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ module Types
5
+ class UserResponse < Internal::Types::Model
6
+ field :data, -> { Insion::Types::User }, optional: false, nullable: false
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Insion
4
+ VERSION = "1.0.1"
5
+ end
data/lib/Insion.rb ADDED
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require "net/http"
5
+ require "securerandom"
6
+
7
+ require_relative "Insion/internal/json/serializable"
8
+ require_relative "Insion/internal/types/type"
9
+ require_relative "Insion/internal/types/utils"
10
+ require_relative "Insion/internal/types/union"
11
+ require_relative "Insion/internal/errors/constraint_error"
12
+ require_relative "Insion/internal/errors/type_error"
13
+ require_relative "Insion/internal/http/base_request"
14
+ require_relative "Insion/internal/json/request"
15
+ require_relative "Insion/internal/http/raw_client"
16
+ require_relative "Insion/internal/multipart/multipart_encoder"
17
+ require_relative "Insion/internal/multipart/multipart_form_data_part"
18
+ require_relative "Insion/internal/multipart/multipart_form_data"
19
+ require_relative "Insion/internal/multipart/multipart_request"
20
+ require_relative "Insion/internal/types/model/field"
21
+ require_relative "Insion/internal/types/model"
22
+ require_relative "Insion/internal/types/array"
23
+ require_relative "Insion/internal/types/boolean"
24
+ require_relative "Insion/internal/types/enum"
25
+ require_relative "Insion/internal/types/hash"
26
+ require_relative "Insion/internal/types/unknown"
27
+ require_relative "Insion/errors/api_error"
28
+ require_relative "Insion/errors/response_error"
29
+ require_relative "Insion/errors/client_error"
30
+ require_relative "Insion/errors/redirect_error"
31
+ require_relative "Insion/errors/server_error"
32
+ require_relative "Insion/errors/timeout_error"
33
+ require_relative "Insion/internal/iterators/item_iterator"
34
+ require_relative "Insion/internal/iterators/cursor_item_iterator"
35
+ require_relative "Insion/internal/iterators/offset_item_iterator"
36
+ require_relative "Insion/internal/iterators/cursor_page_iterator"
37
+ require_relative "Insion/internal/iterators/offset_page_iterator"
38
+ require_relative "Insion/types/get_api_v1records_request_status"
39
+ require_relative "Insion/types/get_api_v1users_request_status"
40
+ require_relative "Insion/types/content_external_urls"
41
+ require_relative "Insion/types/content"
42
+ require_relative "Insion/types/metadata"
43
+ require_relative "Insion/types/user_input"
44
+ require_relative "Insion/types/record_input"
45
+ require_relative "Insion/types/ingest_record_request"
46
+ require_relative "Insion/types/error_response_error"
47
+ require_relative "Insion/types/error_response"
48
+ require_relative "Insion/types/success_response"
49
+ require_relative "Insion/types/ingest_user_response"
50
+ require_relative "Insion/types/ingest_record_response"
51
+ require_relative "Insion/types/moderate_response_status"
52
+ require_relative "Insion/types/moderate_response"
53
+ require_relative "Insion/types/record_moderation_status"
54
+ require_relative "Insion/types/record"
55
+ require_relative "Insion/types/record_response"
56
+ require_relative "Insion/types/list_records_response"
57
+ require_relative "Insion/types/user_action_status"
58
+ require_relative "Insion/types/user"
59
+ require_relative "Insion/types/user_response"
60
+ require_relative "Insion/types/list_users_response"
61
+ require_relative "Insion/types/create_appeal_response_data_action_status"
62
+ require_relative "Insion/types/create_appeal_response_data"
63
+ require_relative "Insion/types/create_appeal_response"
64
+ require_relative "Insion/client"
65
+ require_relative "Insion/types/moderate_request"
66
+ require_relative "Insion/types/delete_api_v1ingest_request"
67
+ require_relative "Insion/types/get_api_v1records_request"
68
+ require_relative "Insion/types/get_api_v1records_record_id_request"
69
+ require_relative "Insion/types/get_api_v1users_request"
70
+ require_relative "Insion/types/get_api_v1users_user_id_request"
71
+ require_relative "Insion/types/post_api_v1users_user_id_create_appeal_request"
72
+ require_relative "Insion/environment"
data/lib/insion.rb ADDED
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "Insion/version"
4
+ require_relative "Insion"