vrchatapi 1.20.7

VRChat API Client for Rust
Documentation
/*
 * VRChat API Documentation
 *
 *
 * Contact: vrchatapi.lpv0t@aries.fyi
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

/// SubmitModerationReportRequest : Pseudocode steps to build a request with a valid combination: request = {} config = json.parse(GET /config) valid_types = config.reportOptions.keys request.type = select_one(valid_types, (id) => { text: id, tooltip: \"\" }) valid_categories = config.reportOptions[request.type].keys request.category = select_one(valid_categories, (id) => config.reportCategories[id]) valid_reasons = config.reportOptions[request.type][request.category] request.reason = select_one(valid_reasons, (id) => config.reportReasons[id]) request.contentId = relevant_id_of_type(request.type) request.details = relevant_details_based_on_type(request.type) request.description = input_string()
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct SubmitModerationReportRequest {
    /// Valid values are the keys of the object `$.reportOptions[type]` from `GET /config`. Descriptions of these are found at `$.reportCategories[type]`.
    #[serde(rename = "category")]
    pub category: String,
    /// The id of the user, group, world, avatar, inventory item, print, etc. being reported.
    #[serde(rename = "contentId")]
    pub content_id: String,
    /// The subjective reason for the report
    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    #[serde(rename = "details", skip_serializing_if = "Option::is_none")]
    pub details: Option<models::SubmitModerationReportRequestDetails>,
    /// Valid values are the strings in the array `$.reportOptions[type][category]` from `GET /config`. Descriptions of these are found at `$.reportReasons[type]`.
    #[serde(rename = "reason")]
    pub reason: String,
    /// Valid values are the keys of the object `$.reportOptions` from `GET /config`.
    #[serde(rename = "type")]
    pub r#type: String,
}

impl SubmitModerationReportRequest {
    /// Pseudocode steps to build a request with a valid combination: request = {} config = json.parse(GET /config) valid_types = config.reportOptions.keys request.type = select_one(valid_types, (id) => { text: id, tooltip: \"\" }) valid_categories = config.reportOptions[request.type].keys request.category = select_one(valid_categories, (id) => config.reportCategories[id]) valid_reasons = config.reportOptions[request.type][request.category] request.reason = select_one(valid_reasons, (id) => config.reportReasons[id]) request.contentId = relevant_id_of_type(request.type) request.details = relevant_details_based_on_type(request.type) request.description = input_string()
    pub fn new(
        category: String,
        content_id: String,
        reason: String,
        r#type: String,
    ) -> SubmitModerationReportRequest {
        SubmitModerationReportRequest {
            category,
            content_id,
            description: None,
            details: None,
            reason,
            r#type,
        }
    }
}