noresponse 10.0.11 → 10.0.13
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.
- checksums.yaml +4 -4
- data/lib/no_response/events.rb +1 -1
- data/lib/no_response/models/shared/access.rb +20 -0
- data/lib/no_response/models/shared/{profile.rbi → access.rbi} +2 -2
- data/lib/no_response/models/shared/attendee.rb +13 -3
- data/lib/no_response/models/shared/attendee.rbi +6 -0
- data/lib/no_response/models/shared/attendeedecided.rb +89 -0
- data/lib/no_response/models/shared/attendeedecided.rbi +44 -0
- data/lib/no_response/models/shared/attendeedecidedevent.rb +70 -0
- data/lib/no_response/models/shared/attendeedecidedevent.rbi +38 -0
- data/lib/no_response/models/shared/attendeeflagged.rb +95 -0
- data/lib/no_response/models/shared/attendeeflagged.rbi +44 -0
- data/lib/no_response/models/shared/attendeeflaggedevent.rb +70 -0
- data/lib/no_response/models/shared/attendeeflaggedevent.rbi +38 -0
- data/lib/no_response/models/shared/attendeeflaggedmatchstate.rb +19 -0
- data/lib/no_response/models/shared/attendeeflaggedmatchstate.rbi +9 -0
- data/lib/no_response/models/shared/attendeereport.rb +25 -7
- data/lib/no_response/models/shared/attendeereport.rbi +12 -0
- data/lib/no_response/models/shared/findingband.rb +22 -0
- data/lib/no_response/models/shared/{attendee_coverage.rbi → findingband.rbi} +2 -2
- data/lib/no_response/models/shared/findingcategory.rb +27 -0
- data/lib/no_response/models/shared/{screening_platform.rbi → findingcategory.rbi} +2 -2
- data/lib/no_response/models/shared/handle.rb +1 -0
- data/lib/no_response/models/shared/handleplatform.rb +2 -1
- data/lib/no_response/models/shared/mediatype.rb +19 -0
- data/lib/no_response/models/shared/{finding.rbi → mediatype.rbi} +2 -2
- data/lib/no_response/models/shared/profilematchstate.rb +20 -0
- data/lib/no_response/models/shared/profilematchstate.rbi +9 -0
- data/lib/no_response/models/shared/screening.rb +23 -3
- data/lib/no_response/models/shared/screening.rbi +12 -0
- data/lib/no_response/models/shared/screeningcompleted.rb +146 -0
- data/lib/no_response/models/shared/screeningcompleted.rbi +74 -0
- data/lib/no_response/models/shared/screeningcompletedbyband.rb +52 -0
- data/lib/no_response/models/shared/screeningcompletedbyband.rbi +38 -0
- data/lib/no_response/models/shared/screeningcompletedevent.rb +70 -0
- data/lib/no_response/models/shared/screeningcompletedevent.rbi +38 -0
- data/lib/no_response/models/shared/screeningcompletedstatus.rb +17 -0
- data/lib/no_response/models/shared/screeningcompletedstatus.rbi +9 -0
- data/lib/no_response/models/shared/screeningcoverage.rb +82 -0
- data/lib/no_response/models/shared/screeningcoverage.rbi +44 -0
- data/lib/no_response/models/shared/screeningfinding.rb +152 -0
- data/lib/no_response/models/shared/screeningfinding.rbi +74 -0
- data/lib/no_response/models/shared/screeningmatch.rb +50 -0
- data/lib/no_response/models/shared/screeningmatch.rbi +20 -0
- data/lib/no_response/models/shared/screeningmatchevidence.rb +57 -0
- data/lib/no_response/models/shared/screeningmatchevidence.rbi +26 -0
- data/lib/no_response/models/shared/screeningmatchevidencekind.rb +25 -0
- data/lib/no_response/models/shared/screeningmatchevidencekind.rbi +9 -0
- data/lib/no_response/models/shared/screeningmedia.rb +141 -0
- data/lib/no_response/models/shared/screeningmedia.rbi +74 -0
- data/lib/no_response/models/shared/screeningplatformcoverage.rb +80 -0
- data/lib/no_response/models/shared/screeningplatformcoverage.rbi +32 -0
- data/lib/no_response/models/shared/screeningplatformcoveragestatus.rb +22 -0
- data/lib/no_response/models/shared/screeningplatformcoveragestatus.rbi +9 -0
- data/lib/no_response/models/shared/screeningpost.rb +111 -0
- data/lib/no_response/models/shared/screeningpost.rbi +62 -0
- data/lib/no_response/models/shared/screeningprofile.rb +193 -0
- data/lib/no_response/models/shared/screeningprofile.rbi +104 -0
- data/lib/no_response/models/shared/screeningrequest.rb +2 -5
- data/lib/no_response/models/shared/screeningspend.rb +41 -0
- data/lib/no_response/models/shared/screeningspend.rbi +20 -0
- data/lib/no_response/models/shared/screeningspendline.rb +57 -0
- data/lib/no_response/models/shared/screeningspendline.rbi +26 -0
- data/lib/no_response/models/shared/screeningspendlinerole.rb +20 -0
- data/lib/no_response/models/shared/screeningspendlinerole.rbi +9 -0
- data/lib/no_response/models/shared/screeningstatus.rb +1 -1
- data/lib/no_response/models/shared/webhookdeliveryattempt.rb +1 -1
- data/lib/no_response/models/shared/webhookreplay.rb +1 -1
- data/lib/no_response/models/shared.rb +27 -5
- data/lib/no_response/sdkconfiguration.rb +2 -2
- data/lib/no_response/webhook_verification.rb +8 -2
- metadata +56 -12
- data/lib/no_response/models/shared/attendee_coverage.rb +0 -23
- data/lib/no_response/models/shared/finding.rb +0 -23
- data/lib/no_response/models/shared/profile.rb +0 -23
- data/lib/no_response/models/shared/screening_platform.rb +0 -27
- data/lib/no_response/models/shared/screeningrequest_platform.rb +0 -24
- data/lib/no_response/models/shared/screeningrequest_platform.rbi +0 -9
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# ScreeningMatchEvidenceKind - What matched. email, phone, supplied_handle and source_fact are hard identifiers; company, city and school are soft.
|
|
8
|
+
class ScreeningMatchEvidenceKind
|
|
9
|
+
include ::Crystalline::Enum
|
|
10
|
+
enums do
|
|
11
|
+
EMAIL = new("email")
|
|
12
|
+
PHONE = new("phone")
|
|
13
|
+
SUPPLIED_HANDLE = new("supplied_handle")
|
|
14
|
+
SOURCE_FACT = new("source_fact")
|
|
15
|
+
NAME = new("name")
|
|
16
|
+
COMPANY = new("company")
|
|
17
|
+
CITY = new("city")
|
|
18
|
+
SCHOOL = new("school")
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
open!
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# One image or video a collector read, with the post that carried it.
|
|
8
|
+
class ScreeningMedia
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
field :id, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("id"), required: true}}
|
|
13
|
+
|
|
14
|
+
field(
|
|
15
|
+
:media_type,
|
|
16
|
+
Models::Shared::MediaType,
|
|
17
|
+
{
|
|
18
|
+
'format_json': {
|
|
19
|
+
'letter_case': ::NoResponse::Utils.field_name("media_type"),
|
|
20
|
+
required: true,
|
|
21
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::MediaType, false)
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
)
|
|
25
|
+
# Where the platform serves the image or video.
|
|
26
|
+
field(
|
|
27
|
+
:media_url,
|
|
28
|
+
::String,
|
|
29
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("media_url"), required: true}}
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
field(
|
|
33
|
+
:profile_id,
|
|
34
|
+
::String,
|
|
35
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("profile_id"), required: true}}
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
field(
|
|
39
|
+
:permalink,
|
|
40
|
+
::String,
|
|
41
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("permalink"), required: true}}
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
field(
|
|
45
|
+
:posted_at,
|
|
46
|
+
::String,
|
|
47
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("posted_at"), required: true}}
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
field :kind, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("kind"), required: true}}
|
|
51
|
+
|
|
52
|
+
field(
|
|
53
|
+
:post_id,
|
|
54
|
+
Crystalline::Nilable.new(::String),
|
|
55
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("post_id")}}
|
|
56
|
+
)
|
|
57
|
+
# The caption or alt text.
|
|
58
|
+
field(
|
|
59
|
+
:text,
|
|
60
|
+
Crystalline::Nilable.new(::String),
|
|
61
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("text")}}
|
|
62
|
+
)
|
|
63
|
+
# SHA-256 of the screenshot taken of a flagged item.
|
|
64
|
+
field(
|
|
65
|
+
:screenshot_sha256,
|
|
66
|
+
Crystalline::Nilable.new(::String),
|
|
67
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("screenshot_sha256")}}
|
|
68
|
+
)
|
|
69
|
+
# When the screenshot was taken.
|
|
70
|
+
field(
|
|
71
|
+
:captured_at,
|
|
72
|
+
Crystalline::Nilable.new(::String),
|
|
73
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("captured_at")}}
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
sig {
|
|
77
|
+
params(
|
|
78
|
+
id: ::String,
|
|
79
|
+
media_type: Models::Shared::MediaType,
|
|
80
|
+
media_url: ::String,
|
|
81
|
+
profile_id: ::String,
|
|
82
|
+
permalink: ::String,
|
|
83
|
+
posted_at: ::String,
|
|
84
|
+
kind: ::String,
|
|
85
|
+
post_id: T.nilable(::String),
|
|
86
|
+
text: T.nilable(::String),
|
|
87
|
+
screenshot_sha256: T.nilable(::String),
|
|
88
|
+
captured_at: T.nilable(::String)
|
|
89
|
+
)
|
|
90
|
+
.void
|
|
91
|
+
}
|
|
92
|
+
def initialize(
|
|
93
|
+
id:,
|
|
94
|
+
media_type:,
|
|
95
|
+
media_url:,
|
|
96
|
+
profile_id:,
|
|
97
|
+
permalink:,
|
|
98
|
+
posted_at:,
|
|
99
|
+
kind: "media",
|
|
100
|
+
post_id: nil,
|
|
101
|
+
text: nil,
|
|
102
|
+
screenshot_sha256: nil,
|
|
103
|
+
captured_at: nil
|
|
104
|
+
)
|
|
105
|
+
@id = id
|
|
106
|
+
@media_type = media_type
|
|
107
|
+
@media_url = media_url
|
|
108
|
+
@profile_id = profile_id
|
|
109
|
+
@permalink = permalink
|
|
110
|
+
@posted_at = posted_at
|
|
111
|
+
unless kind == "media"
|
|
112
|
+
raise ArgumentError, "Invalid value for kind"
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
@kind = "media"
|
|
116
|
+
@post_id = post_id
|
|
117
|
+
@text = text
|
|
118
|
+
@screenshot_sha256 = screenshot_sha256
|
|
119
|
+
@captured_at = captured_at
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
123
|
+
def ==(other)
|
|
124
|
+
return false unless other.is_a?(self.class)
|
|
125
|
+
return false unless @id == other.id
|
|
126
|
+
return false unless @media_type == other.media_type
|
|
127
|
+
return false unless @media_url == other.media_url
|
|
128
|
+
return false unless @profile_id == other.profile_id
|
|
129
|
+
return false unless @permalink == other.permalink
|
|
130
|
+
return false unless @posted_at == other.posted_at
|
|
131
|
+
return false unless @kind == other.kind
|
|
132
|
+
return false unless @post_id == other.post_id
|
|
133
|
+
return false unless @text == other.text
|
|
134
|
+
return false unless @screenshot_sha256 == other.screenshot_sha256
|
|
135
|
+
return false unless @captured_at == other.captured_at
|
|
136
|
+
true
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::ScreeningMedia
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::ScreeningMedia
|
|
9
|
+
def id
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def id=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def media_type
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def media_type=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def media_url
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def media_url=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def profile_id
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def profile_id=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def permalink
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def permalink=(str_)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def posted_at
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def posted_at=(str_)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def kind
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def kind=(str_)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def post_id
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def post_id=(str_)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def text
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def text=(str_)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def screenshot_sha256
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def screenshot_sha256=(str_)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def captured_at
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def captured_at=(str_)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# What a screening read on one platform.
|
|
8
|
+
class ScreeningPlatformCoverage
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# A platform a screening can cover. synthetic is the deterministic connector's own platform, for exercising the product end to end with no network.
|
|
13
|
+
field(
|
|
14
|
+
:platform,
|
|
15
|
+
Models::Shared::HandlePlatform,
|
|
16
|
+
{
|
|
17
|
+
'format_json': {
|
|
18
|
+
'letter_case': ::NoResponse::Utils.field_name("platform"),
|
|
19
|
+
required: true,
|
|
20
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::HandlePlatform, false)
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
)
|
|
24
|
+
# covered read at least one profile; none_found looked and found no account; inaccessible found accounts that are private or locked; failed could not finish looking; unavailable has no resolver or collector enabled.
|
|
25
|
+
field(
|
|
26
|
+
:status,
|
|
27
|
+
Models::Shared::ScreeningPlatformCoverageStatus,
|
|
28
|
+
{
|
|
29
|
+
'format_json': {
|
|
30
|
+
'letter_case': ::NoResponse::Utils.field_name("status"),
|
|
31
|
+
required: true,
|
|
32
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(
|
|
33
|
+
Models::Shared::ScreeningPlatformCoverageStatus,
|
|
34
|
+
false
|
|
35
|
+
)
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
field(
|
|
41
|
+
:accounts_found,
|
|
42
|
+
::Integer,
|
|
43
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("accounts_found"), required: true}}
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
field(
|
|
47
|
+
:items_read,
|
|
48
|
+
::Integer,
|
|
49
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("items_read"), required: true}}
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
sig {
|
|
53
|
+
params(
|
|
54
|
+
platform: Models::Shared::HandlePlatform,
|
|
55
|
+
status: Models::Shared::ScreeningPlatformCoverageStatus,
|
|
56
|
+
accounts_found: ::Integer,
|
|
57
|
+
items_read: ::Integer
|
|
58
|
+
)
|
|
59
|
+
.void
|
|
60
|
+
}
|
|
61
|
+
def initialize(platform:, status:, accounts_found:, items_read:)
|
|
62
|
+
@platform = platform
|
|
63
|
+
@status = status
|
|
64
|
+
@accounts_found = accounts_found
|
|
65
|
+
@items_read = items_read
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
69
|
+
def ==(other)
|
|
70
|
+
return false unless other.is_a?(self.class)
|
|
71
|
+
return false unless @platform == other.platform
|
|
72
|
+
return false unless @status == other.status
|
|
73
|
+
return false unless @accounts_found == other.accounts_found
|
|
74
|
+
return false unless @items_read == other.items_read
|
|
75
|
+
true
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::ScreeningPlatformCoverage
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::ScreeningPlatformCoverage
|
|
9
|
+
def platform
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def platform=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def status
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def status=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def accounts_found
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def accounts_found=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def items_read
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def items_read=(str_)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# ScreeningPlatformCoverageStatus - covered read at least one profile; none_found looked and found no account; inaccessible found accounts that are private or locked; failed could not finish looking; unavailable has no resolver or collector enabled.
|
|
8
|
+
class ScreeningPlatformCoverageStatus
|
|
9
|
+
include ::Crystalline::Enum
|
|
10
|
+
enums do
|
|
11
|
+
COVERED = new("covered")
|
|
12
|
+
NONE_FOUND = new("none_found")
|
|
13
|
+
INACCESSIBLE = new("inaccessible")
|
|
14
|
+
FAILED = new("failed")
|
|
15
|
+
UNAVAILABLE = new("unavailable")
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
open!
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# One post a collector read, with its permalink and time.
|
|
8
|
+
class ScreeningPost
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
field :id, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("id"), required: true}}
|
|
13
|
+
|
|
14
|
+
field :text, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("text"), required: true}}
|
|
15
|
+
|
|
16
|
+
field(
|
|
17
|
+
:profile_id,
|
|
18
|
+
::String,
|
|
19
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("profile_id"), required: true}}
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
field(
|
|
23
|
+
:permalink,
|
|
24
|
+
::String,
|
|
25
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("permalink"), required: true}}
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
field(
|
|
29
|
+
:posted_at,
|
|
30
|
+
::String,
|
|
31
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("posted_at"), required: true}}
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
field :kind, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("kind"), required: true}}
|
|
35
|
+
|
|
36
|
+
field(
|
|
37
|
+
:reply_to,
|
|
38
|
+
Crystalline::Nilable.new(::String),
|
|
39
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("reply_to")}}
|
|
40
|
+
)
|
|
41
|
+
# SHA-256 of the screenshot taken of a flagged item.
|
|
42
|
+
field(
|
|
43
|
+
:screenshot_sha256,
|
|
44
|
+
Crystalline::Nilable.new(::String),
|
|
45
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("screenshot_sha256")}}
|
|
46
|
+
)
|
|
47
|
+
# When the screenshot was taken.
|
|
48
|
+
field(
|
|
49
|
+
:captured_at,
|
|
50
|
+
Crystalline::Nilable.new(::String),
|
|
51
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("captured_at")}}
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
sig {
|
|
55
|
+
params(
|
|
56
|
+
id: ::String,
|
|
57
|
+
text: ::String,
|
|
58
|
+
profile_id: ::String,
|
|
59
|
+
permalink: ::String,
|
|
60
|
+
posted_at: ::String,
|
|
61
|
+
kind: ::String,
|
|
62
|
+
reply_to: T.nilable(::String),
|
|
63
|
+
screenshot_sha256: T.nilable(::String),
|
|
64
|
+
captured_at: T.nilable(::String)
|
|
65
|
+
)
|
|
66
|
+
.void
|
|
67
|
+
}
|
|
68
|
+
def initialize(
|
|
69
|
+
id:,
|
|
70
|
+
text:,
|
|
71
|
+
profile_id:,
|
|
72
|
+
permalink:,
|
|
73
|
+
posted_at:,
|
|
74
|
+
kind: "post",
|
|
75
|
+
reply_to: nil,
|
|
76
|
+
screenshot_sha256: nil,
|
|
77
|
+
captured_at: nil
|
|
78
|
+
)
|
|
79
|
+
@id = id
|
|
80
|
+
@text = text
|
|
81
|
+
@profile_id = profile_id
|
|
82
|
+
@permalink = permalink
|
|
83
|
+
@posted_at = posted_at
|
|
84
|
+
unless kind == "post"
|
|
85
|
+
raise ArgumentError, "Invalid value for kind"
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
@kind = "post"
|
|
89
|
+
@reply_to = reply_to
|
|
90
|
+
@screenshot_sha256 = screenshot_sha256
|
|
91
|
+
@captured_at = captured_at
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
95
|
+
def ==(other)
|
|
96
|
+
return false unless other.is_a?(self.class)
|
|
97
|
+
return false unless @id == other.id
|
|
98
|
+
return false unless @text == other.text
|
|
99
|
+
return false unless @profile_id == other.profile_id
|
|
100
|
+
return false unless @permalink == other.permalink
|
|
101
|
+
return false unless @posted_at == other.posted_at
|
|
102
|
+
return false unless @kind == other.kind
|
|
103
|
+
return false unless @reply_to == other.reply_to
|
|
104
|
+
return false unless @screenshot_sha256 == other.screenshot_sha256
|
|
105
|
+
return false unless @captured_at == other.captured_at
|
|
106
|
+
true
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::ScreeningPost
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::ScreeningPost
|
|
9
|
+
def id
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def id=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def text
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def text=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def profile_id
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def profile_id=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def permalink
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def permalink=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def posted_at
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def posted_at=(str_)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def kind
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def kind=(str_)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def reply_to
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def reply_to=(str_)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def screenshot_sha256
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def screenshot_sha256=(str_)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def captured_at
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def captured_at=(str_)
|
|
61
|
+
end
|
|
62
|
+
end
|