noresponse 10.0.21 → 11.0.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.
- checksums.yaml +4 -4
- data/lib/no_response/{events.rb → groups.rb} +131 -139
- data/lib/no_response/models/operations/{addattendees_request.rb → addpeople_request.rb} +8 -8
- data/lib/no_response/models/operations/{addattendees_request.rbi → addpeople_request.rbi} +4 -4
- data/lib/no_response/models/operations/addpeople_response.rb +32 -0
- data/lib/no_response/models/operations/{listevents_response.rbi → addpeople_response.rbi} +2 -2
- data/lib/no_response/models/operations/cancelscreening_request.rb +5 -5
- data/lib/no_response/models/operations/cancelscreening_request.rbi +2 -2
- data/lib/no_response/models/operations/{createevent_request.rb → creategroup_request.rb} +3 -3
- data/lib/no_response/models/operations/{createevent_request.rbi → creategroup_request.rbi} +2 -2
- data/lib/no_response/models/operations/{createevent_response.rb → creategroup_response.rb} +3 -3
- data/lib/no_response/models/operations/{getattendee_response.rbi → creategroup_response.rbi} +2 -2
- data/lib/no_response/models/operations/{deleteevent_request.rb → deletegroup_request.rb} +6 -6
- data/lib/no_response/models/operations/{deleteevent_request.rbi → deletegroup_request.rbi} +4 -4
- data/lib/no_response/models/operations/{deleteevent_response.rb → deletegroup_response.rb} +1 -1
- data/lib/no_response/models/operations/{deleteevent_response.rbi → deletegroup_response.rbi} +2 -2
- data/lib/no_response/models/operations/{getevent_request.rb → getgroup_request.rb} +6 -6
- data/lib/no_response/models/operations/{getevent_request.rbi → getgroup_request.rbi} +4 -4
- data/lib/no_response/models/operations/{getevent_response.rb → getgroup_response.rb} +3 -3
- data/lib/no_response/models/operations/{getevent_response.rbi → getgroup_response.rbi} +2 -2
- data/lib/no_response/models/operations/{getattendee_request.rb → getperson_request.rb} +10 -10
- data/lib/no_response/models/operations/{getattendee_request.rbi → getperson_request.rbi} +6 -6
- data/lib/no_response/models/operations/getperson_response.rb +32 -0
- data/lib/no_response/models/operations/{createevent_response.rbi → getperson_response.rbi} +2 -2
- data/lib/no_response/models/operations/getscreening_request.rb +5 -5
- data/lib/no_response/models/operations/getscreening_request.rbi +2 -2
- data/lib/no_response/models/operations/{listevents_request.rb → listgroups_request.rb} +2 -2
- data/lib/no_response/models/operations/{listevents_request.rbi → listgroups_request.rbi} +2 -2
- data/lib/no_response/models/operations/{listevents_response.rb → listgroups_response.rb} +3 -3
- data/lib/no_response/models/operations/listgroups_response.rbi +20 -0
- data/lib/no_response/models/operations/{listattendees_request.rb → listpeople_request.rb} +17 -17
- data/lib/no_response/models/operations/{listattendees_request.rbi → listpeople_request.rbi} +4 -4
- data/lib/no_response/models/operations/{reviewattendee_response.rb → listpeople_response.rb} +3 -3
- data/lib/no_response/models/operations/listpeople_response.rbi +20 -0
- data/lib/no_response/models/operations/listscreenings_request.rb +5 -5
- data/lib/no_response/models/operations/listscreenings_request.rbi +2 -2
- data/lib/no_response/models/operations/{reviewattendee_request.rb → reviewperson_request.rb} +12 -12
- data/lib/no_response/models/operations/{reviewattendee_request.rbi → reviewperson_request.rbi} +6 -6
- data/lib/no_response/models/operations/reviewperson_response.rb +32 -0
- data/lib/no_response/models/operations/{addattendees_response.rbi → reviewperson_response.rbi} +2 -2
- data/lib/no_response/models/operations/startscreening_request.rb +5 -5
- data/lib/no_response/models/operations/startscreening_request.rbi +2 -2
- data/lib/no_response/models/operations/{updateevent_request.rb → updategroup_request.rb} +8 -8
- data/lib/no_response/models/operations/{updateevent_request.rbi → updategroup_request.rbi} +4 -4
- data/lib/no_response/models/operations/{updateevent_response.rb → updategroup_response.rb} +3 -3
- data/lib/no_response/models/operations/updategroup_response.rbi +20 -0
- data/lib/no_response/models/operations.rb +18 -18
- data/lib/no_response/models/shared/conflicterrorcode.rb +2 -2
- data/lib/no_response/models/shared/findingcategory.rb +1 -1
- data/lib/no_response/models/shared/{event.rb → group.rb} +17 -17
- data/lib/no_response/models/shared/{event.rbi → group.rbi} +4 -4
- data/lib/no_response/models/shared/{eventlist.rb → grouplist.rb} +4 -4
- data/lib/no_response/models/shared/{eventlist.rbi → grouplist.rbi} +2 -2
- data/lib/no_response/models/shared/{eventrequest.rb → grouprequest.rb} +8 -8
- data/lib/no_response/models/shared/{eventrequest.rbi → grouprequest.rbi} +2 -2
- data/lib/no_response/models/shared/{eventupdate.rb → groupupdate.rb} +8 -8
- data/lib/no_response/models/shared/{eventupdate.rbi → groupupdate.rbi} +2 -2
- data/lib/no_response/models/shared/handle.rb +1 -1
- data/lib/no_response/models/shared/key_scope.rb +1 -1
- data/lib/no_response/models/shared/keyrequest_scope.rb +1 -1
- data/lib/no_response/models/shared/{listattendeesband.rb → listpeopleband.rb} +1 -1
- data/lib/no_response/models/shared/{attendeedecision.rbi → listpeopleband.rbi} +2 -2
- data/lib/no_response/models/shared/{listattendeesdecision.rb → listpeopledecision.rb} +1 -1
- data/lib/no_response/models/shared/listpeopledecision.rbi +9 -0
- data/lib/no_response/models/shared/{listattendeesrole.rb → listpeoplerole.rb} +1 -1
- data/lib/no_response/models/shared/{listattendeesrole.rbi → listpeoplerole.rbi} +2 -2
- data/lib/no_response/models/shared/matchstate.rb +1 -1
- data/lib/no_response/models/shared/metric.rb +1 -1
- data/lib/no_response/models/shared/{otherevent.rb → othergroup.rb} +35 -35
- data/lib/no_response/models/shared/{otherevent.rbi → othergroup.rbi} +10 -10
- data/lib/no_response/models/shared/{otherevents.rb → othergroups.rb} +6 -6
- data/lib/no_response/models/shared/{otherevents.rbi → othergroups.rbi} +2 -2
- data/lib/no_response/models/shared/{attendee.rb → person.rb} +24 -24
- data/lib/no_response/models/shared/{attendee.rbi → person.rbi} +4 -4
- data/lib/no_response/models/shared/{attendeebatch.rb → personbatch.rb} +3 -3
- data/lib/no_response/models/shared/{attendeebatch.rbi → personbatch.rbi} +2 -2
- data/lib/no_response/models/shared/{attendeebatchitem.rb → personbatchitem.rb} +5 -5
- data/lib/no_response/models/shared/{attendeebatchitem.rbi → personbatchitem.rbi} +2 -2
- data/lib/no_response/models/shared/{attendeebatchitemoutcome.rb → personbatchitemoutcome.rb} +2 -2
- data/lib/no_response/models/shared/personbatchitemoutcome.rbi +9 -0
- data/lib/no_response/models/shared/personbatchrequest.rb +32 -0
- data/lib/no_response/models/shared/personbatchrequest.rbi +14 -0
- data/lib/no_response/models/shared/{attendeedecided.rb → persondecided.rb} +19 -19
- data/lib/no_response/models/shared/{attendeedecided.rbi → persondecided.rbi} +6 -6
- data/lib/no_response/models/shared/{attendeedecidedevent.rb → persondecidedevent.rb} +9 -9
- data/lib/no_response/models/shared/{attendeeflaggedevent.rbi → persondecidedevent.rbi} +2 -2
- data/lib/no_response/models/shared/{attendeedecision.rb → persondecision.rb} +1 -1
- data/lib/no_response/models/shared/{listattendeesband.rbi → persondecision.rbi} +2 -2
- data/lib/no_response/models/shared/{attendeeflagged.rb → personflagged.rb} +19 -19
- data/lib/no_response/models/shared/{attendeeflagged.rbi → personflagged.rbi} +6 -6
- data/lib/no_response/models/shared/{attendeeflaggedevent.rb → personflaggedevent.rb} +9 -9
- data/lib/no_response/models/shared/{attendeedecidedevent.rbi → personflaggedevent.rbi} +2 -2
- data/lib/no_response/models/shared/{attendeeflaggedmatchstate.rb → personflaggedmatchstate.rb} +2 -2
- data/lib/no_response/models/shared/personflaggedmatchstate.rbi +9 -0
- data/lib/no_response/models/shared/{attendeeidentity.rb → personidentity.rb} +13 -13
- data/lib/no_response/models/shared/{attendeeidentity.rbi → personidentity.rbi} +2 -2
- data/lib/no_response/models/shared/{attendeelist.rb → personlist.rb} +4 -4
- data/lib/no_response/models/shared/{attendeelist.rbi → personlist.rbi} +2 -2
- data/lib/no_response/models/shared/{attendeereport.rb → personreport.rb} +20 -20
- data/lib/no_response/models/shared/{attendeereport.rbi → personreport.rbi} +6 -6
- data/lib/no_response/models/shared/{attendeereview.rb → personreview.rb} +4 -4
- data/lib/no_response/models/shared/{attendeereview.rbi → personreview.rbi} +2 -2
- data/lib/no_response/models/shared/{attendeereviewrequest.rb → personreviewrequest.rb} +5 -5
- data/lib/no_response/models/shared/{attendeereviewrequest.rbi → personreviewrequest.rbi} +2 -2
- data/lib/no_response/models/shared/personrole.rb +21 -0
- data/lib/no_response/models/shared/{attendeerole.rbi → personrole.rbi} +2 -2
- data/lib/no_response/models/shared/principal.rb +1 -1
- data/lib/no_response/models/shared/profilematchstate.rb +1 -1
- data/lib/no_response/models/shared/risk.rb +1 -1
- data/lib/no_response/models/shared/risksummary.rb +1 -1
- data/lib/no_response/models/shared/screening.rb +42 -42
- data/lib/no_response/models/shared/screening.rbi +12 -12
- data/lib/no_response/models/shared/screeningcompleted.rb +34 -34
- data/lib/no_response/models/shared/screeningcompleted.rbi +8 -8
- data/lib/no_response/models/shared/screeningcompletedbyband.rb +1 -1
- data/lib/no_response/models/shared/screeningcompletedevent.rb +1 -1
- data/lib/no_response/models/shared/screeningcompletedstatus.rb +1 -1
- data/lib/no_response/models/shared/screeningcoverage.rb +2 -2
- data/lib/no_response/models/shared/screeningfinding.rb +1 -1
- data/lib/no_response/models/shared/screeninglookup.rb +3 -3
- data/lib/no_response/models/shared/screeningmatch.rb +2 -2
- data/lib/no_response/models/shared/screeningmatchevidence.rb +2 -2
- data/lib/no_response/models/shared/screeningmatchevidencekind.rb +1 -1
- data/lib/no_response/models/shared/screeningnotanalysedcount.rb +1 -1
- data/lib/no_response/models/shared/screeningnotanalysedreason.rb +1 -1
- data/lib/no_response/models/shared/screeningprofile.rb +2 -2
- data/lib/no_response/models/shared/screeningrequest.rb +1 -1
- data/lib/no_response/models/shared/screeningstatus.rb +1 -1
- data/lib/no_response/models/shared/usage.rb +1 -1
- data/lib/no_response/models/shared/usagecount.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 +26 -26
- data/lib/no_response/noresponseclient.rb +2 -2
- data/lib/no_response/sdkconfiguration.rb +2 -2
- data/lib/no_response/webhook_verification.rb +4 -4
- data/lib/noresponse.rb +1 -1
- metadata +91 -91
- data/lib/no_response/models/operations/addattendees_response.rb +0 -32
- data/lib/no_response/models/operations/getattendee_response.rb +0 -32
- data/lib/no_response/models/operations/listattendees_response.rb +0 -32
- data/lib/no_response/models/operations/listattendees_response.rbi +0 -20
- data/lib/no_response/models/operations/reviewattendee_response.rbi +0 -20
- data/lib/no_response/models/operations/updateevent_response.rbi +0 -20
- data/lib/no_response/models/shared/attendeebatchitemoutcome.rbi +0 -9
- data/lib/no_response/models/shared/attendeebatchrequest.rb +0 -32
- data/lib/no_response/models/shared/attendeebatchrequest.rbi +0 -14
- data/lib/no_response/models/shared/attendeeflaggedmatchstate.rbi +0 -9
- data/lib/no_response/models/shared/attendeerole.rb +0 -21
- data/lib/no_response/models/shared/listattendeesdecision.rbi +0 -9
|
@@ -4,22 +4,22 @@
|
|
|
4
4
|
module NoResponse
|
|
5
5
|
module Models
|
|
6
6
|
module Shared
|
|
7
|
-
# A reviewer recorded a decision on
|
|
8
|
-
class
|
|
7
|
+
# A reviewer recorded a decision on a person. The decision's note stays in the API. Sent once per recorded review; a person's latest review is its decision, so order by decided_at.
|
|
8
|
+
class PersonDecided
|
|
9
9
|
extend T::Sig
|
|
10
10
|
include Crystalline::MetadataFields
|
|
11
11
|
|
|
12
|
-
# The
|
|
12
|
+
# The person's group.
|
|
13
13
|
field(
|
|
14
|
-
:
|
|
14
|
+
:group_id,
|
|
15
15
|
::String,
|
|
16
|
-
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("
|
|
16
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("group_id"), required: true}}
|
|
17
17
|
)
|
|
18
|
-
# The
|
|
18
|
+
# The person decided on.
|
|
19
19
|
field(
|
|
20
|
-
:
|
|
20
|
+
:person_id,
|
|
21
21
|
::String,
|
|
22
|
-
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("
|
|
22
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("person_id"), required: true}}
|
|
23
23
|
)
|
|
24
24
|
# The recorded review.
|
|
25
25
|
field(
|
|
@@ -30,16 +30,16 @@ module NoResponse
|
|
|
30
30
|
|
|
31
31
|
field(
|
|
32
32
|
:decision,
|
|
33
|
-
Models::Shared::
|
|
33
|
+
Models::Shared::PersonDecision,
|
|
34
34
|
{
|
|
35
35
|
'format_json': {
|
|
36
36
|
'letter_case': ::NoResponse::Utils.field_name("decision"),
|
|
37
37
|
required: true,
|
|
38
|
-
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::
|
|
38
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::PersonDecision, false)
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
)
|
|
42
|
-
# Who decided: the member's external user id, or the API key's label, as the
|
|
42
|
+
# Who decided: the member's external user id, or the API key's label, as the person's decided_by.
|
|
43
43
|
field(
|
|
44
44
|
:decided_by,
|
|
45
45
|
::String,
|
|
@@ -54,18 +54,18 @@ module NoResponse
|
|
|
54
54
|
|
|
55
55
|
sig {
|
|
56
56
|
params(
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
group_id: ::String,
|
|
58
|
+
person_id: ::String,
|
|
59
59
|
review_id: ::String,
|
|
60
|
-
decision: Models::Shared::
|
|
60
|
+
decision: Models::Shared::PersonDecision,
|
|
61
61
|
decided_by: ::String,
|
|
62
62
|
decided_at: ::String
|
|
63
63
|
)
|
|
64
64
|
.void
|
|
65
65
|
}
|
|
66
|
-
def initialize(
|
|
67
|
-
@
|
|
68
|
-
@
|
|
66
|
+
def initialize(group_id:, person_id:, review_id:, decision:, decided_by:, decided_at:)
|
|
67
|
+
@group_id = group_id
|
|
68
|
+
@person_id = person_id
|
|
69
69
|
@review_id = review_id
|
|
70
70
|
@decision = decision
|
|
71
71
|
@decided_by = decided_by
|
|
@@ -75,8 +75,8 @@ module NoResponse
|
|
|
75
75
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
76
76
|
def ==(other)
|
|
77
77
|
return false unless other.is_a?(self.class)
|
|
78
|
-
return false unless @
|
|
79
|
-
return false unless @
|
|
78
|
+
return false unless @group_id == other.group_id
|
|
79
|
+
return false unless @person_id == other.person_id
|
|
80
80
|
return false unless @review_id == other.review_id
|
|
81
81
|
return false unless @decision == other.decision
|
|
82
82
|
return false unless @decided_by == other.decided_by
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
# typed: true
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
class NoResponse::Models::Shared::
|
|
4
|
+
class NoResponse::Models::Shared::PersonDecided
|
|
5
5
|
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
class NoResponse::Models::Shared::
|
|
9
|
-
def
|
|
8
|
+
class NoResponse::Models::Shared::PersonDecided
|
|
9
|
+
def group_id
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
-
def
|
|
12
|
+
def group_id=(str_)
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
def
|
|
15
|
+
def person_id
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
def
|
|
18
|
+
def person_id=(str_)
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def review_id
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
module NoResponse
|
|
5
5
|
module Models
|
|
6
6
|
module Shared
|
|
7
|
-
# The
|
|
8
|
-
class
|
|
7
|
+
# The person.decided event.
|
|
8
|
+
class PersonDecidedEvent
|
|
9
9
|
extend T::Sig
|
|
10
10
|
include Crystalline::MetadataFields
|
|
11
11
|
|
|
@@ -17,13 +17,13 @@ module NoResponse
|
|
|
17
17
|
::String,
|
|
18
18
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("created_at"), required: true}}
|
|
19
19
|
)
|
|
20
|
-
# A reviewer recorded a decision on
|
|
20
|
+
# A reviewer recorded a decision on a person. The decision's note stays in the API. Sent once per recorded review; a person's latest review is its decision, so order by decided_at.
|
|
21
21
|
field(
|
|
22
22
|
:data,
|
|
23
|
-
Models::Shared::
|
|
23
|
+
Models::Shared::PersonDecided,
|
|
24
24
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("data"), required: true}}
|
|
25
25
|
)
|
|
26
|
-
# Always
|
|
26
|
+
# Always person.decided.
|
|
27
27
|
field :type, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("type"), required: true}}
|
|
28
28
|
# Present, and true, only on an event sent by POST /v1/webhooks/{endpoint_id}/test: its data is a fixed example assessment, not one of the workspace's, so a receiver acknowledges it and applies nothing. Real events have no test member.
|
|
29
29
|
field(
|
|
@@ -36,21 +36,21 @@ module NoResponse
|
|
|
36
36
|
params(
|
|
37
37
|
id: ::String,
|
|
38
38
|
created_at: ::String,
|
|
39
|
-
data: Models::Shared::
|
|
39
|
+
data: Models::Shared::PersonDecided,
|
|
40
40
|
type: ::String,
|
|
41
41
|
test: T.nilable(T::Boolean)
|
|
42
42
|
)
|
|
43
43
|
.void
|
|
44
44
|
}
|
|
45
|
-
def initialize(id:, created_at:, data:, type: "
|
|
45
|
+
def initialize(id:, created_at:, data:, type: "person.decided", test: nil)
|
|
46
46
|
@id = id
|
|
47
47
|
@created_at = created_at
|
|
48
48
|
@data = data
|
|
49
|
-
unless type == "
|
|
49
|
+
unless type == "person.decided"
|
|
50
50
|
raise ArgumentError, "Invalid value for type"
|
|
51
51
|
end
|
|
52
52
|
|
|
53
|
-
@type = "
|
|
53
|
+
@type = "person.decided"
|
|
54
54
|
@test = test
|
|
55
55
|
end
|
|
56
56
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# typed: true
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
class NoResponse::Models::Shared::
|
|
4
|
+
class NoResponse::Models::Shared::PersonDecidedEvent
|
|
5
5
|
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
class NoResponse::Models::Shared::
|
|
8
|
+
class NoResponse::Models::Shared::PersonDecidedEvent
|
|
9
9
|
def id
|
|
10
10
|
end
|
|
11
11
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# typed: true
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
class NoResponse::Models::Shared::
|
|
4
|
+
class NoResponse::Models::Shared::PersonDecision
|
|
5
5
|
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
class NoResponse::Models::Shared::
|
|
8
|
+
class NoResponse::Models::Shared::PersonDecision
|
|
9
9
|
end
|
|
@@ -4,22 +4,22 @@
|
|
|
4
4
|
module NoResponse
|
|
5
5
|
module Models
|
|
6
6
|
module Shared
|
|
7
|
-
# A screening recorded a finding on
|
|
8
|
-
class
|
|
7
|
+
# A screening recorded a finding on a person. It says which person and how severe, not what they posted, who they are or why: GET the person report for the findings. Sent once per screening that flags the person, so a re-screen of someone on watch announces them again.
|
|
8
|
+
class PersonFlagged
|
|
9
9
|
extend T::Sig
|
|
10
10
|
include Crystalline::MetadataFields
|
|
11
11
|
|
|
12
|
-
# The
|
|
12
|
+
# The person's group.
|
|
13
13
|
field(
|
|
14
|
-
:
|
|
14
|
+
:group_id,
|
|
15
15
|
::String,
|
|
16
|
-
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("
|
|
16
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("group_id"), required: true}}
|
|
17
17
|
)
|
|
18
|
-
# The flagged
|
|
18
|
+
# The flagged person.
|
|
19
19
|
field(
|
|
20
|
-
:
|
|
20
|
+
:person_id,
|
|
21
21
|
::String,
|
|
22
|
-
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("
|
|
22
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("person_id"), required: true}}
|
|
23
23
|
)
|
|
24
24
|
# The screening that flagged them.
|
|
25
25
|
field(
|
|
@@ -39,15 +39,15 @@ module NoResponse
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
)
|
|
42
|
-
# How sure the screening is that the accounts it read are the
|
|
42
|
+
# How sure the screening is that the accounts it read are the person's. A finding on a possible match is at most moderate, on a probable match at most high.
|
|
43
43
|
field(
|
|
44
44
|
:match_state,
|
|
45
|
-
Models::Shared::
|
|
45
|
+
Models::Shared::PersonFlaggedMatchState,
|
|
46
46
|
{
|
|
47
47
|
'format_json': {
|
|
48
48
|
'letter_case': ::NoResponse::Utils.field_name("match_state"),
|
|
49
49
|
required: true,
|
|
50
|
-
'decoder': ::NoResponse::Utils.enum_from_string(Models::Shared::
|
|
50
|
+
'decoder': ::NoResponse::Utils.enum_from_string(Models::Shared::PersonFlaggedMatchState, false)
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
)
|
|
@@ -60,18 +60,18 @@ module NoResponse
|
|
|
60
60
|
|
|
61
61
|
sig {
|
|
62
62
|
params(
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
group_id: ::String,
|
|
64
|
+
person_id: ::String,
|
|
65
65
|
screening_id: ::String,
|
|
66
66
|
highest_band: Models::Shared::HighestBand,
|
|
67
|
-
match_state: Models::Shared::
|
|
67
|
+
match_state: Models::Shared::PersonFlaggedMatchState,
|
|
68
68
|
flagged_at: ::String
|
|
69
69
|
)
|
|
70
70
|
.void
|
|
71
71
|
}
|
|
72
|
-
def initialize(
|
|
73
|
-
@
|
|
74
|
-
@
|
|
72
|
+
def initialize(group_id:, person_id:, screening_id:, highest_band:, match_state:, flagged_at:)
|
|
73
|
+
@group_id = group_id
|
|
74
|
+
@person_id = person_id
|
|
75
75
|
@screening_id = screening_id
|
|
76
76
|
@highest_band = highest_band
|
|
77
77
|
@match_state = match_state
|
|
@@ -81,8 +81,8 @@ module NoResponse
|
|
|
81
81
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
82
82
|
def ==(other)
|
|
83
83
|
return false unless other.is_a?(self.class)
|
|
84
|
-
return false unless @
|
|
85
|
-
return false unless @
|
|
84
|
+
return false unless @group_id == other.group_id
|
|
85
|
+
return false unless @person_id == other.person_id
|
|
86
86
|
return false unless @screening_id == other.screening_id
|
|
87
87
|
return false unless @highest_band == other.highest_band
|
|
88
88
|
return false unless @match_state == other.match_state
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
# typed: true
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
class NoResponse::Models::Shared::
|
|
4
|
+
class NoResponse::Models::Shared::PersonFlagged
|
|
5
5
|
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
class NoResponse::Models::Shared::
|
|
9
|
-
def
|
|
8
|
+
class NoResponse::Models::Shared::PersonFlagged
|
|
9
|
+
def group_id
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
-
def
|
|
12
|
+
def group_id=(str_)
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
def
|
|
15
|
+
def person_id
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
def
|
|
18
|
+
def person_id=(str_)
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def screening_id
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
module NoResponse
|
|
5
5
|
module Models
|
|
6
6
|
module Shared
|
|
7
|
-
# The
|
|
8
|
-
class
|
|
7
|
+
# The person.flagged event.
|
|
8
|
+
class PersonFlaggedEvent
|
|
9
9
|
extend T::Sig
|
|
10
10
|
include Crystalline::MetadataFields
|
|
11
11
|
|
|
@@ -17,13 +17,13 @@ module NoResponse
|
|
|
17
17
|
::String,
|
|
18
18
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("created_at"), required: true}}
|
|
19
19
|
)
|
|
20
|
-
# A screening recorded a finding on
|
|
20
|
+
# A screening recorded a finding on a person. It says which person and how severe, not what they posted, who they are or why: GET the person report for the findings. Sent once per screening that flags the person, so a re-screen of someone on watch announces them again.
|
|
21
21
|
field(
|
|
22
22
|
:data,
|
|
23
|
-
Models::Shared::
|
|
23
|
+
Models::Shared::PersonFlagged,
|
|
24
24
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("data"), required: true}}
|
|
25
25
|
)
|
|
26
|
-
# Always
|
|
26
|
+
# Always person.flagged.
|
|
27
27
|
field :type, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("type"), required: true}}
|
|
28
28
|
# Present, and true, only on an event sent by POST /v1/webhooks/{endpoint_id}/test: its data is a fixed example assessment, not one of the workspace's, so a receiver acknowledges it and applies nothing. Real events have no test member.
|
|
29
29
|
field(
|
|
@@ -36,21 +36,21 @@ module NoResponse
|
|
|
36
36
|
params(
|
|
37
37
|
id: ::String,
|
|
38
38
|
created_at: ::String,
|
|
39
|
-
data: Models::Shared::
|
|
39
|
+
data: Models::Shared::PersonFlagged,
|
|
40
40
|
type: ::String,
|
|
41
41
|
test: T.nilable(T::Boolean)
|
|
42
42
|
)
|
|
43
43
|
.void
|
|
44
44
|
}
|
|
45
|
-
def initialize(id:, created_at:, data:, type: "
|
|
45
|
+
def initialize(id:, created_at:, data:, type: "person.flagged", test: nil)
|
|
46
46
|
@id = id
|
|
47
47
|
@created_at = created_at
|
|
48
48
|
@data = data
|
|
49
|
-
unless type == "
|
|
49
|
+
unless type == "person.flagged"
|
|
50
50
|
raise ArgumentError, "Invalid value for type"
|
|
51
51
|
end
|
|
52
52
|
|
|
53
|
-
@type = "
|
|
53
|
+
@type = "person.flagged"
|
|
54
54
|
@test = test
|
|
55
55
|
end
|
|
56
56
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# typed: true
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
class NoResponse::Models::Shared::
|
|
4
|
+
class NoResponse::Models::Shared::PersonFlaggedEvent
|
|
5
5
|
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
class NoResponse::Models::Shared::
|
|
8
|
+
class NoResponse::Models::Shared::PersonFlaggedEvent
|
|
9
9
|
def id
|
|
10
10
|
end
|
|
11
11
|
|
data/lib/no_response/models/shared/{attendeeflaggedmatchstate.rb → personflaggedmatchstate.rb}
RENAMED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
module NoResponse
|
|
5
5
|
module Models
|
|
6
6
|
module Shared
|
|
7
|
-
#
|
|
8
|
-
class
|
|
7
|
+
# PersonFlaggedMatchState - How sure the screening is that the accounts it read are the person's. A finding on a possible match is at most moderate, on a probable match at most high.
|
|
8
|
+
class PersonFlaggedMatchState < T::Enum
|
|
9
9
|
enums do
|
|
10
10
|
CONFIRMED = new("confirmed")
|
|
11
11
|
PROBABLE = new("probable")
|
|
@@ -4,57 +4,57 @@
|
|
|
4
4
|
module NoResponse
|
|
5
5
|
module Models
|
|
6
6
|
module Shared
|
|
7
|
-
# What you know about
|
|
8
|
-
class
|
|
7
|
+
# What you know about a person. Stored encrypted under the workspace's key.
|
|
8
|
+
class PersonIdentity
|
|
9
9
|
extend T::Sig
|
|
10
10
|
include Crystalline::MetadataFields
|
|
11
11
|
|
|
12
|
-
# The
|
|
12
|
+
# The person's full name.
|
|
13
13
|
field :name, ::String, {'format_json': {'letter_case': ::NoResponse::Utils.field_name("name"), required: true}}
|
|
14
|
-
# Your own id for the
|
|
14
|
+
# Your own id for the person, unique within the group. A later row with the same external id updates this person.
|
|
15
15
|
field(
|
|
16
16
|
:external_id,
|
|
17
17
|
Crystalline::Nilable.new(::String),
|
|
18
18
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("external_id")}}
|
|
19
19
|
)
|
|
20
|
-
# The
|
|
20
|
+
# The person's email.
|
|
21
21
|
field(
|
|
22
22
|
:email,
|
|
23
23
|
Crystalline::Nilable.new(::String),
|
|
24
24
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("email")}}
|
|
25
25
|
)
|
|
26
|
-
# The
|
|
26
|
+
# The person's phone in E.164 form.
|
|
27
27
|
field(
|
|
28
28
|
:phone,
|
|
29
29
|
Crystalline::Nilable.new(::String),
|
|
30
30
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("phone")}}
|
|
31
31
|
)
|
|
32
|
-
# Where the
|
|
32
|
+
# Where the person works.
|
|
33
33
|
field(
|
|
34
34
|
:company,
|
|
35
35
|
Crystalline::Nilable.new(::String),
|
|
36
36
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("company")}}
|
|
37
37
|
)
|
|
38
|
-
# Where the
|
|
38
|
+
# Where the person lives.
|
|
39
39
|
field(
|
|
40
40
|
:city,
|
|
41
41
|
Crystalline::Nilable.new(::String),
|
|
42
42
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("city")}}
|
|
43
43
|
)
|
|
44
|
-
# Accounts the
|
|
44
|
+
# Accounts the person is known to hold, at most 20.
|
|
45
45
|
field(
|
|
46
46
|
:handles,
|
|
47
47
|
Crystalline::Nilable.new(Crystalline::Array.new(Models::Shared::Handle)),
|
|
48
48
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("handles")}}
|
|
49
49
|
)
|
|
50
|
-
# The
|
|
50
|
+
# The person's role in the group: guest (a ticket holder), crew, vendor or press. Leave it out when you do not know it: a person without one has no role, not guest. A later row naming the same person replaces it, and a change of role alone keeps the person's screening results.
|
|
51
51
|
field(
|
|
52
52
|
:role,
|
|
53
|
-
Crystalline::Nilable.new(Models::Shared::
|
|
53
|
+
Crystalline::Nilable.new(Models::Shared::PersonRole),
|
|
54
54
|
{
|
|
55
55
|
'format_json': {
|
|
56
56
|
'letter_case': ::NoResponse::Utils.field_name("role"),
|
|
57
|
-
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::
|
|
57
|
+
'decoder': ::NoResponse::Utils.open_enum_from_string(Models::Shared::PersonRole, true)
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
)
|
|
@@ -68,7 +68,7 @@ module NoResponse
|
|
|
68
68
|
company: T.nilable(::String),
|
|
69
69
|
city: T.nilable(::String),
|
|
70
70
|
handles: T.nilable(T::Array[Models::Shared::Handle]),
|
|
71
|
-
role: T.nilable(Models::Shared::
|
|
71
|
+
role: T.nilable(Models::Shared::PersonRole)
|
|
72
72
|
)
|
|
73
73
|
.void
|
|
74
74
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# typed: true
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
class NoResponse::Models::Shared::
|
|
4
|
+
class NoResponse::Models::Shared::PersonIdentity
|
|
5
5
|
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
class NoResponse::Models::Shared::
|
|
8
|
+
class NoResponse::Models::Shared::PersonIdentity
|
|
9
9
|
def name
|
|
10
10
|
end
|
|
11
11
|
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
module NoResponse
|
|
5
5
|
module Models
|
|
6
6
|
module Shared
|
|
7
|
-
#
|
|
8
|
-
class
|
|
7
|
+
# People in upload order.
|
|
8
|
+
class PersonList
|
|
9
9
|
extend T::Sig
|
|
10
10
|
include Crystalline::MetadataFields
|
|
11
11
|
|
|
12
12
|
field(
|
|
13
13
|
:items,
|
|
14
|
-
Crystalline::Array.new(Models::Shared::
|
|
14
|
+
Crystalline::Array.new(Models::Shared::Person),
|
|
15
15
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("items"), required: true}}
|
|
16
16
|
)
|
|
17
17
|
# Pass as after to read the next page.
|
|
@@ -21,7 +21,7 @@ module NoResponse
|
|
|
21
21
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("next_after")}}
|
|
22
22
|
)
|
|
23
23
|
|
|
24
|
-
sig { params(items: T::Array[Models::Shared::
|
|
24
|
+
sig { params(items: T::Array[Models::Shared::Person], next_after: T.nilable(::String)).void }
|
|
25
25
|
def initialize(items:, next_after: nil)
|
|
26
26
|
@items = items
|
|
27
27
|
@next_after = next_after
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# typed: true
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
class NoResponse::Models::Shared::
|
|
4
|
+
class NoResponse::Models::Shared::PersonList
|
|
5
5
|
extend ::Crystalline::MetadataFields::ClassMethods
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
class NoResponse::Models::Shared::
|
|
8
|
+
class NoResponse::Models::Shared::PersonList
|
|
9
9
|
def items
|
|
10
10
|
end
|
|
11
11
|
|
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
module NoResponse
|
|
5
5
|
module Models
|
|
6
6
|
module Shared
|
|
7
|
-
# Everything known about one
|
|
8
|
-
class
|
|
7
|
+
# Everything known about one person, and where else in the environment they appear.
|
|
8
|
+
class PersonReport
|
|
9
9
|
extend T::Sig
|
|
10
10
|
include Crystalline::MetadataFields
|
|
11
11
|
|
|
12
|
-
#
|
|
12
|
+
# A person and where their screening and review stand.
|
|
13
13
|
field(
|
|
14
|
-
:
|
|
15
|
-
Models::Shared::
|
|
16
|
-
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("
|
|
14
|
+
:person,
|
|
15
|
+
Models::Shared::Person,
|
|
16
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("person"), required: true}}
|
|
17
17
|
)
|
|
18
18
|
# The accounts the latest screening matched, with how each was matched.
|
|
19
19
|
field(
|
|
@@ -42,16 +42,16 @@ module NoResponse
|
|
|
42
42
|
# Every recorded decision, oldest first.
|
|
43
43
|
field(
|
|
44
44
|
:reviews,
|
|
45
|
-
Crystalline::Array.new(Models::Shared::
|
|
45
|
+
Crystalline::Array.new(Models::Shared::PersonReview),
|
|
46
46
|
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("reviews"), required: true}}
|
|
47
47
|
)
|
|
48
|
-
# Where else in the environment the
|
|
48
|
+
# Where else in the environment the person appears, read live from those groups: deleting one removes it here.
|
|
49
49
|
field(
|
|
50
|
-
:
|
|
51
|
-
Models::Shared::
|
|
52
|
-
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("
|
|
50
|
+
:other_groups,
|
|
51
|
+
Models::Shared::OtherGroups,
|
|
52
|
+
{'format_json': {'letter_case': ::NoResponse::Utils.field_name("other_groups"), required: true}}
|
|
53
53
|
)
|
|
54
|
-
# What the signup check's lookups found for
|
|
54
|
+
# What the signup check's lookups found for a person: account presence for the email, phone and usernames (the person's handles), the phone lookup, the email domain's registration and the breach search. Context and coverage for the reviewer, not a finding: nothing here sets a band or a match state.
|
|
55
55
|
field(
|
|
56
56
|
:lookup,
|
|
57
57
|
Crystalline::Nilable.new(Models::Shared::ScreeningLookup),
|
|
@@ -60,38 +60,38 @@ module NoResponse
|
|
|
60
60
|
|
|
61
61
|
sig {
|
|
62
62
|
params(
|
|
63
|
-
|
|
63
|
+
person: Models::Shared::Person,
|
|
64
64
|
profiles: T::Array[Models::Shared::ScreeningProfile],
|
|
65
65
|
findings: T::Array[Models::Shared::ScreeningFinding],
|
|
66
66
|
posts: T::Array[Models::Shared::ScreeningPost],
|
|
67
67
|
media: T::Array[Models::Shared::ScreeningMedia],
|
|
68
|
-
reviews: T::Array[Models::Shared::
|
|
69
|
-
|
|
68
|
+
reviews: T::Array[Models::Shared::PersonReview],
|
|
69
|
+
other_groups: Models::Shared::OtherGroups,
|
|
70
70
|
lookup: T.nilable(Models::Shared::ScreeningLookup)
|
|
71
71
|
)
|
|
72
72
|
.void
|
|
73
73
|
}
|
|
74
|
-
def initialize(
|
|
75
|
-
@
|
|
74
|
+
def initialize(person:, profiles:, findings:, posts:, media:, reviews:, other_groups:, lookup: nil)
|
|
75
|
+
@person = person
|
|
76
76
|
@profiles = profiles
|
|
77
77
|
@findings = findings
|
|
78
78
|
@posts = posts
|
|
79
79
|
@media = media
|
|
80
80
|
@reviews = reviews
|
|
81
|
-
@
|
|
81
|
+
@other_groups = other_groups
|
|
82
82
|
@lookup = lookup
|
|
83
83
|
end
|
|
84
84
|
|
|
85
85
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
86
86
|
def ==(other)
|
|
87
87
|
return false unless other.is_a?(self.class)
|
|
88
|
-
return false unless @
|
|
88
|
+
return false unless @person == other.person
|
|
89
89
|
return false unless @profiles == other.profiles
|
|
90
90
|
return false unless @findings == other.findings
|
|
91
91
|
return false unless @posts == other.posts
|
|
92
92
|
return false unless @media == other.media
|
|
93
93
|
return false unless @reviews == other.reviews
|
|
94
|
-
return false unless @
|
|
94
|
+
return false unless @other_groups == other.other_groups
|
|
95
95
|
return false unless @lookup == other.lookup
|
|
96
96
|
true
|
|
97
97
|
end
|