upleb.uk

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

summaryrefslogtreecommitdiff
path: root/src/lib/repo_ref.rs
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2024-09-25 14:37:17 +0100
committerDanConwayDev <DanConwayDev@protonmail.com>2024-09-25 14:37:17 +0100
commitd6faad17e814d252a72e3aca39a4b3898382bab9 (patch)
tree16a238703293fe0d9cce04fa83de2af4a88f5433 /src/lib/repo_ref.rs
parent4f84dc460c3494286233afe9ca480d3b7c0186b1 (diff)
chore: bump rust-nostr v0.35
bump all rust-nostr packages
Diffstat (limited to 'src/lib/repo_ref.rs')
-rw-r--r--src/lib/repo_ref.rs103
1 files changed, 61 insertions, 42 deletions
diff --git a/src/lib/repo_ref.rs b/src/lib/repo_ref.rs
index e498c86..2468d4d 100644
--- a/src/lib/repo_ref.rs
+++ b/src/lib/repo_ref.rs
@@ -42,42 +42,50 @@ impl TryFrom<nostr::Event> for RepoRef {
42 } 42 }
43 let mut r = Self::default(); 43 let mut r = Self::default();
44 44
45 if let Some(t) = event.tags.iter().find(|t| t.as_vec()[0].eq("d")) { 45 if let Some(t) = event.tags.iter().find(|t| t.as_slice()[0].eq("d")) {
46 r.identifier = t.as_vec()[1].clone(); 46 r.identifier = t.as_slice()[1].clone();
47 } 47 }
48 48
49 if let Some(t) = event.tags.iter().find(|t| t.as_vec()[0].eq("name")) { 49 if let Some(t) = event.tags.iter().find(|t| t.as_slice()[0].eq("name")) {
50 r.name = t.as_vec()[1].clone(); 50 r.name = t.as_slice()[1].clone();
51 } 51 }
52 52
53 if let Some(t) = event.tags.iter().find(|t| t.as_vec()[0].eq("description")) { 53 if let Some(t) = event
54 r.description = t.as_vec()[1].clone(); 54 .tags
55 .iter()
56 .find(|t| t.as_slice()[0].eq("description"))
57 {
58 r.description = t.as_slice()[1].clone();
55 } 59 }
56 60
57 if let Some(t) = event.tags.iter().find(|t| t.as_vec()[0].eq("clone")) { 61 if let Some(t) = event.tags.iter().find(|t| t.as_slice()[0].eq("clone")) {
58 r.git_server = t.clone().to_vec(); 62 r.git_server = t.clone().to_vec();
59 r.git_server.remove(0); 63 r.git_server.remove(0);
60 } 64 }
61 65
62 if let Some(t) = event.tags.iter().find(|t| t.as_vec()[0].eq("web")) { 66 if let Some(t) = event.tags.iter().find(|t| t.as_slice()[0].eq("web")) {
63 r.web = t.clone().to_vec(); 67 r.web = t.clone().to_vec();
64 r.web.remove(0); 68 r.web.remove(0);
65 } 69 }
66 70
67 if let Some(t) = event.tags.iter().find(|t| { 71 if let Some(t) = event.tags.iter().find(|t| {
68 t.as_vec()[0].eq("r") 72 t.as_slice()[0].eq("r")
69 && t.as_vec()[1].len().eq(&40) 73 && t.as_slice()[1].len().eq(&40)
70 && git2::Oid::from_str(t.as_vec()[1].as_str()).is_ok() 74 && git2::Oid::from_str(t.as_slice()[1].as_str()).is_ok()
71 }) { 75 }) {
72 r.root_commit = t.as_vec()[1].clone(); 76 r.root_commit = t.as_slice()[1].clone();
73 } 77 }
74 78
75 if let Some(t) = event.tags.iter().find(|t| t.as_vec()[0].eq("relays")) { 79 if let Some(t) = event.tags.iter().find(|t| t.as_slice()[0].eq("relays")) {
76 r.relays = t.clone().to_vec(); 80 r.relays = t.clone().to_vec();
77 r.relays.remove(0); 81 r.relays.remove(0);
78 } 82 }
79 83
80 if let Some(t) = event.tags.iter().find(|t| t.as_vec()[0].eq("maintainers")) { 84 if let Some(t) = event
85 .tags
86 .iter()
87 .find(|t| t.as_slice()[0].eq("maintainers"))
88 {
81 let mut maintainers = t.clone().to_vec(); 89 let mut maintainers = t.clone().to_vec();
82 maintainers.remove(0); 90 maintainers.remove(0);
83 if !maintainers.contains(&event.pubkey.to_string()) { 91 if !maintainers.contains(&event.pubkey.to_string()) {
@@ -98,7 +106,7 @@ impl TryFrom<nostr::Event> for RepoRef {
98 Coordinate { 106 Coordinate {
99 kind: event.kind, 107 kind: event.kind,
100 identifier: event.identifier().unwrap().to_string(), 108 identifier: event.identifier().unwrap().to_string(),
101 public_key: event.author(), 109 public_key: event.pubkey,
102 relays: vec![], 110 relays: vec![],
103 }, 111 },
104 event, 112 event,
@@ -606,7 +614,7 @@ mod tests {
606 .await 614 .await
607 .tags 615 .tags
608 .iter() 616 .iter()
609 .any(|t| t.as_vec()[0].eq("d") && t.as_vec()[1].eq("123412341")) 617 .any(|t| t.as_slice()[0].eq("d") && t.as_slice()[1].eq("123412341"))
610 ) 618 )
611 } 619 }
612 620
@@ -617,36 +625,44 @@ mod tests {
617 .await 625 .await
618 .tags 626 .tags
619 .iter() 627 .iter()
620 .any(|t| t.as_vec()[0].eq("name") && t.as_vec()[1].eq("test name")) 628 .any(|t| t.as_slice()[0].eq("name") && t.as_slice()[1].eq("test name"))
621 ) 629 )
622 } 630 }
623 631
624 #[tokio::test] 632 #[tokio::test]
625 async fn alt() { 633 async fn alt() {
626 assert!( 634 assert!(create().await.tags.iter().any(|t| t.as_slice()[0].eq("alt")
627 create().await.tags.iter().any(|t| t.as_vec()[0].eq("alt") 635 && t.as_slice()[1].eq("git repository: test name")))
628 && t.as_vec()[1].eq("git repository: test name"))
629 )
630 } 636 }
631 637
632 #[tokio::test] 638 #[tokio::test]
633 async fn description() { 639 async fn description() {
634 assert!(create().await.tags.iter().any( 640 assert!(
635 |t| t.as_vec()[0].eq("description") && t.as_vec()[1].eq("test description") 641 create()
636 )) 642 .await
643 .tags
644 .iter()
645 .any(|t| t.as_slice()[0].eq("description")
646 && t.as_slice()[1].eq("test description"))
647 )
637 } 648 }
638 649
639 #[tokio::test] 650 #[tokio::test]
640 async fn root_commit_as_reference() { 651 async fn root_commit_as_reference() {
641 assert!(create().await.tags.iter().any(|t| t.as_vec()[0].eq("r") 652 assert!(create().await.tags.iter().any(|t| t.as_slice()[0].eq("r")
642 && t.as_vec()[1].eq("5e664e5a7845cd1373c79f580ca4fe29ab5b34d2"))) 653 && t.as_slice()[1].eq("5e664e5a7845cd1373c79f580ca4fe29ab5b34d2")))
643 } 654 }
644 655
645 #[tokio::test] 656 #[tokio::test]
646 async fn git_server() { 657 async fn git_server() {
647 assert!(create().await.tags.iter().any( 658 assert!(
648 |t| t.as_vec()[0].eq("clone") && t.as_vec()[1].eq("https://localhost:1000") 659 create()
649 )) 660 .await
661 .tags
662 .iter()
663 .any(|t| t.as_slice()[0].eq("clone")
664 && t.as_slice()[1].eq("https://localhost:1000"))
665 )
650 } 666 }
651 667
652 #[tokio::test] 668 #[tokio::test]
@@ -655,21 +671,24 @@ mod tests {
655 let relays_tag: &nostr::Tag = event 671 let relays_tag: &nostr::Tag = event
656 .tags 672 .tags
657 .iter() 673 .iter()
658 .find(|t| t.as_vec()[0].eq("relays")) 674 .find(|t| t.as_slice()[0].eq("relays"))
659 .unwrap(); 675 .unwrap();
660 assert_eq!(relays_tag.as_vec().len(), 3); 676 assert_eq!(relays_tag.as_slice().len(), 3);
661 assert_eq!(relays_tag.as_vec()[1], "ws://relay1.io"); 677 assert_eq!(relays_tag.as_slice()[1], "ws://relay1.io");
662 assert_eq!(relays_tag.as_vec()[2], "ws://relay2.io"); 678 assert_eq!(relays_tag.as_slice()[2], "ws://relay2.io");
663 } 679 }
664 680
665 #[tokio::test] 681 #[tokio::test]
666 async fn web() { 682 async fn web() {
667 let event = create().await; 683 let event = create().await;
668 let web_tag: &nostr::Tag = 684 let web_tag: &nostr::Tag = event
669 event.tags.iter().find(|t| t.as_vec()[0].eq("web")).unwrap(); 685 .tags
670 assert_eq!(web_tag.as_vec().len(), 3); 686 .iter()
671 assert_eq!(web_tag.as_vec()[1], "https://exampleproject.xyz"); 687 .find(|t| t.as_slice()[0].eq("web"))
672 assert_eq!(web_tag.as_vec()[2], "https://gitworkshop.dev/123"); 688 .unwrap();
689 assert_eq!(web_tag.as_slice().len(), 3);
690 assert_eq!(web_tag.as_slice()[1], "https://exampleproject.xyz");
691 assert_eq!(web_tag.as_slice()[2], "https://gitworkshop.dev/123");
673 } 692 }
674 693
675 #[tokio::test] 694 #[tokio::test]
@@ -678,15 +697,15 @@ mod tests {
678 let maintainers_tag: &nostr::Tag = event 697 let maintainers_tag: &nostr::Tag = event
679 .tags 698 .tags
680 .iter() 699 .iter()
681 .find(|t| t.as_vec()[0].eq("maintainers")) 700 .find(|t| t.as_slice()[0].eq("maintainers"))
682 .unwrap(); 701 .unwrap();
683 assert_eq!(maintainers_tag.as_vec().len(), 3); 702 assert_eq!(maintainers_tag.as_slice().len(), 3);
684 assert_eq!( 703 assert_eq!(
685 maintainers_tag.as_vec()[1], 704 maintainers_tag.as_slice()[1],
686 TEST_KEY_1_KEYS.public_key().to_string() 705 TEST_KEY_1_KEYS.public_key().to_string()
687 ); 706 );
688 assert_eq!( 707 assert_eq!(
689 maintainers_tag.as_vec()[2], 708 maintainers_tag.as_slice()[2],
690 TEST_KEY_2_KEYS.public_key().to_string() 709 TEST_KEY_2_KEYS.public_key().to_string()
691 ); 710 );
692 } 711 }