gitverse-sdk 1.2.0

Rust SDK for GitVerse API
Documentation
// Code generated by gitverse-codegen. DO NOT EDIT.

use crate::client::{Client, decode_response, handle_empty_response};
use crate::errors::Error;
use crate::types::*;

impl Client {
    /// Get list of favorites repositories of authenticated user
    pub async fn list_favorites(
        &self,
        opts: Option<&QueryOptions>,
    ) -> Result<Vec<Repository>, Error> {
        let path = "/user/starred";
        let resp = self.send_get(&path, opts).await?;
        decode_response(resp).await
    }

    /// Check if repository is in favorites
    pub async fn is_starred(&self, owner: &str, repo: &str) -> Result<(), Error> {
        let path = format!("/user/starred/{}/{}", owner, repo);
        let resp = self.send_get(&path, None).await?;
        handle_empty_response(resp).await
    }

    /// Add repository to favorites
    pub async fn star(&self, owner: &str, repo: &str) -> Result<(), Error> {
        let path = format!("/user/starred/{}/{}", owner, repo);
        let resp = self.send_put(&path, Option::<&()>::None).await?;
        handle_empty_response(resp).await
    }

    /// Remove repository from favorites
    pub async fn unstar(&self, owner: &str, repo: &str) -> Result<(), Error> {
        let path = format!("/user/starred/{}/{}", owner, repo);
        let resp = self.send_delete(&path, Option::<&()>::None).await?;
        handle_empty_response(resp).await
    }
}