h3poteto/megalodon-rs

Cannot use `fields_attributes` inside `UpdateCredentialsInputOptions`

hylobates-agilis opened this issue · 3 comments

Hi,

Maybe I’m mistaken or misusing it somehow, but I can’t make fields_attributes function properly within the UpdateCredentialsInputOptions (the rest of the Struct functions properly AFAIK, but not this particular field).

I tested this against version 0.2.5 and version 0.3.0

Code snippets:

#[tokio::main]
async fn main() {
    let client = generator(
        megalodon::SNS::Mastodon,
        URL.to_string(),
        Some(TOKEN.to_string()),
        None,
    );

    let update_creds = UpdateCredentialsInputOptions {
        fields_attributes: Some(vec![CredentialsFieldAttribute {
            name: "Test".to_string(),
            value: "test".to_string(),
        }]),
        ..Default::default()
    };

    client
        .update_credentials(Some(&update_creds))
        .await
        .unwrap();
}

Current behavior

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: RequestError(reqwest::Error { kind: Builder, source: Custom("unsupported value") })', src/main.rs:28:10
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Expected behaviour

Adds the Test/test values inside the fields_attributes API calls.

If you need any further information or if I can help somehow, please let me know.

I fixed it, please try the latest release!

It doesn’t fail anymore (good!) but it doesn’t update the fields (I honestly don’t know why…).

OK, I think I found it: according to the documentation, you should not provide an array but a dict of some sorts.

I’ve tested it with some static values and it seems to work properly. I’ll see if I can provide a PR to correct this.