Relocate the public trust center GraphQL surface, OAuth handlers, and SPA serving into the compliance portal API package and remove the legacy trust v1 server tree. Signed-off-by: Bryan Frimin <bryan@probo.com>
72 lines
2.0 KiB
GraphQL
72 lines
2.0 KiB
GraphQL
enum RightsRequestType
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.RightsRequestType") {
|
|
ACCESS @goEnum(value: "go.probo.inc/probo/pkg/coredata.RightsRequestTypeAccess")
|
|
DELETION
|
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.RightsRequestTypeDeletion")
|
|
RECTIFICATION
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.RightsRequestTypeRectification"
|
|
)
|
|
PORTABILITY
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.RightsRequestTypePortability"
|
|
)
|
|
OBJECTION
|
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.RightsRequestTypeObjection")
|
|
COMPLAINT
|
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.RightsRequestTypeComplaint")
|
|
}
|
|
|
|
enum RightsRequestState
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.RightsRequestState") {
|
|
TODO @goEnum(value: "go.probo.inc/probo/pkg/coredata.RightsRequestStateTodo")
|
|
IN_PROGRESS
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.RightsRequestStateInProgress"
|
|
)
|
|
DONE @goEnum(value: "go.probo.inc/probo/pkg/coredata.RightsRequestStateDone")
|
|
REJECTED
|
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.RightsRequestStateRejected")
|
|
}
|
|
|
|
type RightsRequest implements Node {
|
|
id: ID!
|
|
requestType: RightsRequestType!
|
|
requestState: RightsRequestState!
|
|
dataSubject: String
|
|
contact: String
|
|
details: String
|
|
deadline: Datetime
|
|
actionTaken: String
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
}
|
|
|
|
type RightsRequestConnection {
|
|
edges: [RightsRequestEdge!]!
|
|
pageInfo: PageInfo!
|
|
}
|
|
|
|
type RightsRequestEdge {
|
|
cursor: CursorKey!
|
|
node: RightsRequest!
|
|
}
|
|
|
|
extend type Mutation {
|
|
# Submit a data subject request. Requires a verified viewer; the request is
|
|
# attributed to the viewer's email, so no NDA gate applies.
|
|
createRightsRequest(
|
|
input: CreateRightsRequestInput!
|
|
): CreateRightsRequestPayload! @authentication(required: PRESENT)
|
|
}
|
|
|
|
input CreateRightsRequestInput {
|
|
requestType: RightsRequestType!
|
|
dataSubject: String
|
|
details: String
|
|
}
|
|
|
|
type CreateRightsRequestPayload {
|
|
rightsRequestEdge: RightsRequestEdge!
|
|
}
|