upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/nostr/policy
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2026-01-08 11:20:35 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2026-01-08 11:23:28 +0000
commit5d02ad6b893f9059044914c115d77cf9d8e589c3 (patch)
treeb727f9c44d2f2d4e203dc2344e4c9bd5144a77dd /src/nostr/policy
parent075307804bf66bba10f5bc55cb40e2e6a98a65ee (diff)
refactor: replace hardcoded Kind constants with rust-nostr variants
- Replace KIND_REPOSITORY_ANNOUNCEMENT with Kind::GitRepoAnnouncement - Replace KIND_REPOSITORY_STATE with Kind::RepoState - Replace KIND_PR with Kind::GitPullRequest - Replace KIND_PR_UPDATE with Kind::GitPullRequestUpdate - Replace KIND_USER_GRASP_LIST with Kind::GitUserGraspList - Replace KIND_PATCH with Kind::GitPatch - Replace KIND_ISSUE with Kind::GitIssue - Replace KIND_COMMENT with Kind::Comment - Replace all Kind::Custom(30617|30618|1617|1618|1619|1621|1111|10317) patterns - Remove all hardcoded KIND_* constants from events.rs - Update all match statements to use Kind enum directly - Update all filter builders to use Kind variants - Update all test helpers and assertions Benefits: - Type safety: compiler prevents wrong kind numbers - Readability: Kind::GitRepoAnnouncement is self-documenting - Maintainability: single source of truth (rust-nostr) - IDE support: full autocompletion and refactoring - Standards: aligns with rust-nostr best practices Files modified: 21 Constants removed: 9 Patterns replaced: 100+ Tests passing: 222/222
Diffstat (limited to 'src/nostr/policy')
-rw-r--r--src/nostr/policy/announcement.rs14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/nostr/policy/announcement.rs b/src/nostr/policy/announcement.rs
index 353738b..61840fb 100644
--- a/src/nostr/policy/announcement.rs
+++ b/src/nostr/policy/announcement.rs
@@ -5,9 +5,7 @@
5use nostr_relay_builder::prelude::{Alphabet, Event, Filter, Kind, PublicKey, SingleLetterTag}; 5use nostr_relay_builder::prelude::{Alphabet, Event, Filter, Kind, PublicKey, SingleLetterTag};
6 6
7use super::PolicyContext; 7use super::PolicyContext;
8use crate::nostr::events::{ 8use crate::nostr::events::{validate_announcement, RepositoryAnnouncement};
9 validate_announcement, RepositoryAnnouncement, KIND_REPOSITORY_ANNOUNCEMENT,
10};
11 9
12/// Result of announcement policy evaluation 10/// Result of announcement policy evaluation
13#[derive(Debug)] 11#[derive(Debug)]
@@ -121,12 +119,10 @@ impl AnnouncementPolicy {
121 author: &PublicKey, 119 author: &PublicKey,
122 ) -> Result<bool, String> { 120 ) -> Result<bool, String> {
123 // Query all announcements with this identifier that are already in the database 121 // Query all announcements with this identifier that are already in the database
124 let filter = Filter::new() 122 let filter = Filter::new().kind(Kind::GitRepoAnnouncement).custom_tag(
125 .kind(Kind::from(KIND_REPOSITORY_ANNOUNCEMENT)) 123 SingleLetterTag::lowercase(Alphabet::D),
126 .custom_tag( 124 identifier.to_string(),
127 SingleLetterTag::lowercase(Alphabet::D), 125 );
128 identifier.to_string(),
129 );
130 126
131 let announcements: Vec<Event> = match self.ctx.database.query(filter).await { 127 let announcements: Vec<Event> = match self.ctx.database.query(filter).await {
132 Ok(events) => events.into_iter().collect(), 128 Ok(events) => events.into_iter().collect(),