lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README | LICENSE

jobs.rs (1322B)


      1 use nostr::nips::nip90::{DataVendingMachineStatus, JobFeedbackData};
      2 
      3 use crate::error::RadrootsNostrError;
      4 use crate::types::{RadrootsNostrEvent, RadrootsNostrEventBuilder, RadrootsNostrTag};
      5 
      6 pub fn radroots_nostr_build_event_job_result(
      7     job_request: &RadrootsNostrEvent,
      8     payload: impl Into<String>,
      9     millisats: u64,
     10     bolt11: Option<String>,
     11     tags: Option<Vec<RadrootsNostrTag>>,
     12 ) -> Result<RadrootsNostrEventBuilder, RadrootsNostrError> {
     13     let builder =
     14         RadrootsNostrEventBuilder::job_result(job_request.clone(), payload, millisats, bolt11)?
     15             .tags(tags.unwrap_or_default())
     16             .allow_self_tagging();
     17     Ok(builder)
     18 }
     19 
     20 pub fn radroots_nostr_build_event_job_feedback(
     21     job_request: &RadrootsNostrEvent,
     22     status: &str,
     23     extra_info: Option<String>,
     24     tags: Option<Vec<RadrootsNostrTag>>,
     25 ) -> Result<RadrootsNostrEventBuilder, RadrootsNostrError> {
     26     let status = status
     27         .parse::<DataVendingMachineStatus>()
     28         .unwrap_or(DataVendingMachineStatus::Error);
     29     let feedback_data = JobFeedbackData::new(&job_request.clone(), status)
     30         .extra_info(extra_info.unwrap_or_default());
     31     let builder = RadrootsNostrEventBuilder::job_feedback(feedback_data)
     32         .tags(tags.unwrap_or_default())
     33         .allow_self_tagging();
     34     Ok(builder)
     35 }