args-api 0.1.0

Shared API contract types and endpoint definitions for args.
Documentation
use serde::{Deserialize, Serialize};

use crate::{endpoint::Endpoint, resource::user::UserResource};

pub struct UpdateCurrentUser;

impl Endpoint for UpdateCurrentUser {
    const PATH: &'static str = "/user";
    const METHOD: http::Method = http::Method::PATCH;

    type Request = UpdateCurrentUserRequest;
    type Response = UpdateCurrentUserResponse;
}

#[derive(ApiRequest, Debug, Serialize, Deserialize)]
pub struct UpdateCurrentUserRequest {
    pub name: Option<String>,
    pub location: Option<String>,
    pub readme: Option<String>,
    pub links: Option<Vec<String>>,
    pub display_name: Option<String>,
}

pub type UpdateCurrentUserResponse = UserResource;