diff --git a/src/builders.rs b/src/builders.rs index b4b0b38..36699c5 100644 --- a/src/builders.rs +++ b/src/builders.rs @@ -436,3 +436,19 @@ impl MsgSudoFreezeAccountBuilder { }) } } + +#[derive(Builder)] +pub struct MsgRescheduleTask { + pub creator: String, + pub task_id: String, +} + +impl MsgRescheduleTaskBuilder { + pub fn into_message(&self) -> Result { + let msg = self.build().map_err(|e| Error::EncodeError(e.to_string()))?; + Ok(gevulot::MsgRescheduleTask { + creator: msg.creator, + id: msg.task_id, + }) + } +} diff --git a/src/task_client.rs b/src/task_client.rs index 16a0857..b1eee80 100644 --- a/src/task_client.rs +++ b/src/task_client.rs @@ -7,7 +7,7 @@ use crate::{ proto::gevulot::gevulot::{ MsgAcceptTask, MsgAcceptTaskResponse, MsgCreateTask, MsgCreateTaskResponse, MsgDeclineTask, MsgDeclineTaskResponse, MsgDeleteTask, MsgDeleteTaskResponse, MsgFinishTask, - MsgFinishTaskResponse, + MsgFinishTaskResponse, MsgRescheduleTask, MsgRescheduleTaskResponse, }, }; @@ -191,4 +191,23 @@ impl TaskClient { .await?; Ok(resp) } + + /// Reschedules a task. + /// + /// # Arguments + /// + /// * `msg` - The message containing the task ID to reschedule. + /// + /// # Returns + /// + /// A Result containing the response or an error. + pub async fn reschedule(&mut self, msg: MsgRescheduleTask) -> Result { + let resp: MsgRescheduleTaskResponse = self + .base_client + .write() + .await + .send_msg_sync(msg, "") + .await?; + Ok(resp) + } }