Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var DDL = []string{
`CREATE TABLE IF NOT EXISTS goncho_review_items (
id TEXT PRIMARY KEY,
kind TEXT NOT NULL CHECK(kind IN ('conflict','stale')),
status TEXT NOT NULL CHECK(status IN ('open','resolved')),
workspace_id TEXT NOT NULL,
peer_id TEXT NOT NULL DEFAULT '',
session_key TEXT NOT NULL DEFAULT '',
subject_id TEXT NOT NULL,
related_id TEXT NOT NULL DEFAULT '',
reason TEXT NOT NULL,
evidence_ids_json TEXT NOT NULL DEFAULT '[]',
created_at INTEGER NOT NULL,
resolution TEXT NOT NULL DEFAULT '',
resolved_by TEXT NOT NULL DEFAULT '',
resolution_reason TEXT NOT NULL DEFAULT '',
resolved_at INTEGER
)`,
`ALTER TABLE goncho_review_items ADD COLUMN resolution TEXT NOT NULL DEFAULT ''`,
`ALTER TABLE goncho_review_items ADD COLUMN resolved_by TEXT NOT NULL DEFAULT ''`,
`ALTER TABLE goncho_review_items ADD COLUMN resolution_reason TEXT NOT NULL DEFAULT ''`,
`CREATE INDEX IF NOT EXISTS idx_goncho_review_items_status ON goncho_review_items(workspace_id, status, created_at DESC)`,
`CREATE INDEX IF NOT EXISTS idx_goncho_review_items_scope ON goncho_review_items(workspace_id, peer_id, session_key, created_at DESC)`,
`CREATE INDEX IF NOT EXISTS idx_goncho_review_items_subject ON goncho_review_items(subject_id, created_at DESC)`,
}
Functions ¶
This section is empty.
Types ¶
type ContextUnavailableEvidence ¶
type ContextUnavailableEvidence struct {
}
func ReviewRequiredUnavailableEvidence ¶
func ReviewRequiredUnavailableEvidence(items []ReviewItem, sessionKeys ...string) []ContextUnavailableEvidence
type ReviewItem ¶
type ReviewItem struct {
ID string `json:"id"`
Kind ReviewKind `json:"kind"`
Status ReviewStatus `json:"status"`
WorkspaceID string `json:"workspace_id"`
PeerID string `json:"peer_id,omitempty"`
SessionKey string `json:"session_key,omitempty"`
SubjectID string `json:"subject_id"`
RelatedID string `json:"related_id,omitempty"`
Reason string `json:"reason"`
EvidenceIDs []string `json:"evidence_ids,omitempty"`
CreatedAt time.Time `json:"created_at"`
Resolution ReviewResolution `json:"resolution,omitempty"`
ResolvedBy string `json:"resolved_by,omitempty"`
ResolutionReason string `json:"resolution_reason,omitempty"`
ResolvedAt *time.Time `json:"resolved_at,omitempty"`
}
func CreateReviewItem ¶
func CreateReviewItem(ctx context.Context, db *sql.DB, p ReviewItemCreateParams) (ReviewItem, error)
func ResolveReviewItem ¶
func ResolveReviewItem(ctx context.Context, db *sql.DB, p ReviewResolutionParams) (ReviewItem, error)
func ReviewItemsForContextSession ¶
func ReviewItemsForContextSession(items []ReviewItem, sessionKey string) []ReviewItem
type ReviewItemCreateParams ¶
type ReviewItemCreateParams struct {
Kind ReviewKind `json:"kind"`
WorkspaceID string `json:"workspace_id,omitempty"`
PeerID string `json:"peer_id,omitempty"`
SessionKey string `json:"session_key,omitempty"`
SubjectID string `json:"subject_id"`
RelatedID string `json:"related_id,omitempty"`
Reason string `json:"reason"`
EvidenceIDs []string `json:"evidence_ids,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty"`
}
type ReviewKind ¶
type ReviewKind string
const ( ReviewKindConflict ReviewKind = "conflict" ReviewKindStale ReviewKind = "stale" )
type ReviewList ¶
type ReviewList struct {
Items []ReviewItem `json:"items"`
Count int `json:"count"`
}
func ListReviewItems ¶
func ListReviewItems(ctx context.Context, db *sql.DB, q ReviewQuery) (ReviewList, error)
type ReviewQuery ¶
type ReviewQuery struct {
WorkspaceID string `json:"workspace_id,omitempty"`
PeerID string `json:"peer_id,omitempty"`
SessionKey string `json:"session_key,omitempty"`
SubjectID string `json:"subject_id,omitempty"`
RelatedID string `json:"related_id,omitempty"`
Kind ReviewKind `json:"kind,omitempty"`
Status ReviewStatus `json:"status,omitempty"`
Limit int `json:"limit,omitempty"`
}
type ReviewResolution ¶
type ReviewResolution string
const ( ReviewResolutionAccepted ReviewResolution = "accepted" ReviewResolutionRejected ReviewResolution = "rejected" ReviewResolutionSuperseded ReviewResolution = "superseded" ReviewResolutionVerified ReviewResolution = "verified" )
type ReviewResolutionParams ¶
type ReviewStatus ¶
type ReviewStatus string
const ( ReviewStatusOpen ReviewStatus = "open" ReviewStatusResolved ReviewStatus = "resolved" )
Click to show internal directories.
Click to hide internal directories.