noresponse 10.0.12 → 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/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/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.rb +18 -5
- data/lib/no_response/sdkconfiguration.rb +2 -2
- metadata +38 -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,152 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# Something the analyser flagged. band is capped by the strongest match among the profiles of its evidence: possible at most moderate, probable at most high. capped_from is the band the analyser gave when the cap lowered it.
|
|
8
|
+
class ScreeningFinding
|
|
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
|
+
# What a finding is about: a direct threat to the principal or the event, intent to harm without a named target, fixation on the principal, a grievance against the host, research into the venue, route or security, weapons tied to any of these, disruption or protest planning toward this event, violent extremist content or identification, prior harassment or stalking of staff or principals, or posting the principal's addresses or movements.
|
|
14
|
+
field(
|
|
15
|
+
:category,
|
|
16
|
+
Models::Shared::FindingCategory,
|
|
17
|
+
{
|
|
18
|
+
'format_json': {
|
|
19
|
+
'letter_case': ::NoResponse::Utils.field_name("category"),
|
|
20
|
+
required: true,
|
|
21
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::FindingCategory, false)
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
)
|
|
25
|
+
# How severe a finding is, most severe first.
|
|
26
|
+
field(
|
|
27
|
+
:band,
|
|
28
|
+
Models::Shared::FindingBand,
|
|
29
|
+
{
|
|
30
|
+
'format_json': {
|
|
31
|
+
'letter_case': ::NoResponse::Utils.field_name("band"),
|
|
32
|
+
required: true,
|
|
33
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::FindingBand, false)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
field(
|
|
39
|
+
:confidence,
|
|
40
|
+
::Float,
|
|
41
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("confidence"), required: true}}
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
field(
|
|
45
|
+
:rationale,
|
|
46
|
+
::String,
|
|
47
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("rationale"), required: true}}
|
|
48
|
+
)
|
|
49
|
+
# The posts and media that support the finding.
|
|
50
|
+
field(
|
|
51
|
+
:evidence,
|
|
52
|
+
Crystalline::Array.new(::String),
|
|
53
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("evidence"), required: true}}
|
|
54
|
+
)
|
|
55
|
+
# The resolver, collector or analyser that produced a record, by its catalogue name.
|
|
56
|
+
field(
|
|
57
|
+
:analyser,
|
|
58
|
+
::String,
|
|
59
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("analyser"), required: true}}
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
field(
|
|
63
|
+
:model,
|
|
64
|
+
::String,
|
|
65
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("model"), required: true}}
|
|
66
|
+
)
|
|
67
|
+
# What the analysis cost, in US cents.
|
|
68
|
+
field(
|
|
69
|
+
:spend_minor,
|
|
70
|
+
::Integer,
|
|
71
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("spend_minor"), required: true}}
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
field(
|
|
75
|
+
:created_at,
|
|
76
|
+
::String,
|
|
77
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("created_at"), required: true}}
|
|
78
|
+
)
|
|
79
|
+
# How severe a finding is, most severe first.
|
|
80
|
+
field(
|
|
81
|
+
:capped_from,
|
|
82
|
+
Crystalline::Nilable.new(Models::Shared::FindingBand),
|
|
83
|
+
{
|
|
84
|
+
'format_json': {
|
|
85
|
+
'letter_case': ::NoResponse::Utils.field_name("capped_from"),
|
|
86
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::FindingBand, true)
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
sig {
|
|
92
|
+
params(
|
|
93
|
+
id: ::String,
|
|
94
|
+
category: Models::Shared::FindingCategory,
|
|
95
|
+
band: Models::Shared::FindingBand,
|
|
96
|
+
confidence: ::Float,
|
|
97
|
+
rationale: ::String,
|
|
98
|
+
evidence: T::Array[::String],
|
|
99
|
+
analyser: ::String,
|
|
100
|
+
model: ::String,
|
|
101
|
+
spend_minor: ::Integer,
|
|
102
|
+
created_at: ::String,
|
|
103
|
+
capped_from: T.nilable(Models::Shared::FindingBand)
|
|
104
|
+
)
|
|
105
|
+
.void
|
|
106
|
+
}
|
|
107
|
+
def initialize(
|
|
108
|
+
id:,
|
|
109
|
+
category:,
|
|
110
|
+
band:,
|
|
111
|
+
confidence:,
|
|
112
|
+
rationale:,
|
|
113
|
+
evidence:,
|
|
114
|
+
analyser:,
|
|
115
|
+
model:,
|
|
116
|
+
spend_minor:,
|
|
117
|
+
created_at:,
|
|
118
|
+
capped_from: nil
|
|
119
|
+
)
|
|
120
|
+
@id = id
|
|
121
|
+
@category = category
|
|
122
|
+
@band = band
|
|
123
|
+
@confidence = confidence
|
|
124
|
+
@rationale = rationale
|
|
125
|
+
@evidence = evidence
|
|
126
|
+
@analyser = analyser
|
|
127
|
+
@model = model
|
|
128
|
+
@spend_minor = spend_minor
|
|
129
|
+
@created_at = created_at
|
|
130
|
+
@capped_from = capped_from
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
134
|
+
def ==(other)
|
|
135
|
+
return false unless other.is_a?(self.class)
|
|
136
|
+
return false unless @id == other.id
|
|
137
|
+
return false unless @category == other.category
|
|
138
|
+
return false unless @band == other.band
|
|
139
|
+
return false unless @confidence == other.confidence
|
|
140
|
+
return false unless @rationale == other.rationale
|
|
141
|
+
return false unless @evidence == other.evidence
|
|
142
|
+
return false unless @analyser == other.analyser
|
|
143
|
+
return false unless @model == other.model
|
|
144
|
+
return false unless @spend_minor == other.spend_minor
|
|
145
|
+
return false unless @created_at == other.created_at
|
|
146
|
+
return false unless @capped_from == other.capped_from
|
|
147
|
+
true
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::ScreeningFinding
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::ScreeningFinding
|
|
9
|
+
def id
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def id=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def category
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def category=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def band
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def band=(str_)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def confidence
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def confidence=(str_)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def rationale
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def rationale=(str_)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def evidence
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def evidence=(str_)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def analyser
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def analyser=(str_)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def model
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def model=(str_)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def spend_minor
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def spend_minor=(str_)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def created_at
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def created_at=(str_)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def capped_from
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def capped_from=(str_)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# How a profile was matched to the attendee: the state its evidence earns, and the evidence.
|
|
8
|
+
class ScreeningMatch
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# How sure the screening is that a profile is the attendee's, from its evidence: confirmed is two or more hard identifiers (email, phone, a supplied handle, or a fact an existing source returned), probable is one identifier beyond the name, possible is the name alone.
|
|
13
|
+
field(
|
|
14
|
+
:state,
|
|
15
|
+
Models::Shared::ProfileMatchState,
|
|
16
|
+
{
|
|
17
|
+
'format_json': {
|
|
18
|
+
'letter_case': ::NoResponse::Utils.field_name("state"),
|
|
19
|
+
required: true,
|
|
20
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::ProfileMatchState, false)
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
field(
|
|
26
|
+
:evidence,
|
|
27
|
+
Crystalline::Array.new(Models::Shared::ScreeningMatchEvidence),
|
|
28
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("evidence"), required: true}}
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
sig {
|
|
32
|
+
params(state: Models::Shared::ProfileMatchState, evidence: T::Array[Models::Shared::ScreeningMatchEvidence])
|
|
33
|
+
.void
|
|
34
|
+
}
|
|
35
|
+
def initialize(state:, evidence:)
|
|
36
|
+
@state = state
|
|
37
|
+
@evidence = evidence
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
41
|
+
def ==(other)
|
|
42
|
+
return false unless other.is_a?(self.class)
|
|
43
|
+
return false unless @state == other.state
|
|
44
|
+
return false unless @evidence == other.evidence
|
|
45
|
+
true
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::ScreeningMatch
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::ScreeningMatch
|
|
9
|
+
def state
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def state=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def evidence
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def evidence=(str_)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module NoResponse
|
|
5
|
+
module Models
|
|
6
|
+
module Shared
|
|
7
|
+
# One identifier that ties a profile to the attendee.
|
|
8
|
+
class ScreeningMatchEvidence
|
|
9
|
+
extend T::Sig
|
|
10
|
+
include Crystalline::MetadataFields
|
|
11
|
+
|
|
12
|
+
# What matched. email, phone, supplied_handle and source_fact are hard identifiers; company, city and school are soft.
|
|
13
|
+
field(
|
|
14
|
+
:kind,
|
|
15
|
+
Models::Shared::ScreeningMatchEvidenceKind,
|
|
16
|
+
{
|
|
17
|
+
'format_json': {
|
|
18
|
+
'letter_case': ::NoResponse::Utils.field_name("kind"),
|
|
19
|
+
required: true,
|
|
20
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::ScreeningMatchEvidenceKind, false)
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
)
|
|
24
|
+
# The resolver, collector or analyser that produced a record, by its catalogue name.
|
|
25
|
+
field(
|
|
26
|
+
:resolver,
|
|
27
|
+
::String,
|
|
28
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("resolver"), required: true}}
|
|
29
|
+
)
|
|
30
|
+
# Where the match was seen, such as the profile field that carried it.
|
|
31
|
+
field(
|
|
32
|
+
:detail,
|
|
33
|
+
Crystalline::Nilable.new(::String),
|
|
34
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("detail")}}
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
sig {
|
|
38
|
+
params(kind: Models::Shared::ScreeningMatchEvidenceKind, resolver: ::String, detail: T.nilable(::String)).void
|
|
39
|
+
}
|
|
40
|
+
def initialize(kind:, resolver:, detail: nil)
|
|
41
|
+
@kind = kind
|
|
42
|
+
@resolver = resolver
|
|
43
|
+
@detail = detail
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
47
|
+
def ==(other)
|
|
48
|
+
return false unless other.is_a?(self.class)
|
|
49
|
+
return false unless @kind == other.kind
|
|
50
|
+
return false unless @resolver == other.resolver
|
|
51
|
+
return false unless @detail == other.detail
|
|
52
|
+
true
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
class NoResponse::Models::Shared::ScreeningMatchEvidence
|
|
5
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
class NoResponse::Models::Shared::ScreeningMatchEvidence
|
|
9
|
+
def kind
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def kind=(str_)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def resolver
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def resolver=(str_)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def detail
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def detail=(str_)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -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
|