diff --git a/native/kotlin/api/kotlin/src/integrationTest/kotlin/UsersEndpointTest.kt b/native/kotlin/api/kotlin/src/integrationTest/kotlin/UsersEndpointTest.kt index 305c7ecc4..87977b465 100644 --- a/native/kotlin/api/kotlin/src/integrationTest/kotlin/UsersEndpointTest.kt +++ b/native/kotlin/api/kotlin/src/integrationTest/kotlin/UsersEndpointTest.kt @@ -31,20 +31,7 @@ class UsersEndpointTest { @Test fun testUserListRequestWithHasPublishedPostsParam() = runTest { - // TODO: Add default values to the binding constructor from Rust val params = UserListParams( - page = null, - perPage = null, - search = null, - exclude = emptyList(), - include = emptyList(), - offset = null, - order = null, - orderby = null, - slug = emptyList(), - roles = emptyList(), - capabilities = emptyList(), - who = null, hasPublishedPosts = WpApiParamUsersHasPublishedPosts.PostTypes(listOf("post", "page")) ) val result = users.list.withEditContext(params) @@ -95,20 +82,7 @@ class UsersEndpointTest { @Test fun testErrorUserListRequestWithHasPublishedPostsInvalidParam() = runTest { - // TODO: Add default values to the binding constructor from Rust val params = UserListParams( - page = null, - perPage = null, - search = null, - exclude = emptyList(), - include = emptyList(), - offset = null, - order = null, - orderby = null, - slug = emptyList(), - roles = emptyList(), - capabilities = emptyList(), - who = null, hasPublishedPosts = WpApiParamUsersHasPublishedPosts.PostTypes(listOf("foo")) ) val result = users.list.withEditContext(params) diff --git a/wp_api/src/users.rs b/wp_api/src/users.rs index cfe098141..0ccd58d4f 100644 --- a/wp_api/src/users.rs +++ b/wp_api/src/users.rs @@ -105,36 +105,49 @@ impl Display for WpApiParamUsersHasPublishedPosts { pub struct UserListParams { /// Current page of the collection. /// Default: `1` + #[uniffi(default = None)] pub page: Option, /// Maximum number of items to be returned in result set. /// Default: `10` + #[uniffi(default = None)] pub per_page: Option, /// Limit results to those matching a string. + #[uniffi(default = None)] pub search: Option, /// Ensure result set excludes specific IDs. + #[uniffi(default = [])] pub exclude: Vec, /// Limit result set to specific IDs. + #[uniffi(default = [])] pub include: Vec, /// Offset the result set by a specific number of items. + #[uniffi(default = None)] pub offset: Option, /// Order sort attribute ascending or descending. /// Default: `asc` /// One of: `asc`, `desc` + #[uniffi(default = None)] pub order: Option, /// Sort collection by user attribute. /// Default: `name` /// One of: `id`, `include`, `name`, `registered_date`, `slug`, `include_slugs`, `email`, `url` + #[uniffi(default = None)] pub orderby: Option, /// Limit result set to users with one or more specific slugs. + #[uniffi(default = [])] pub slug: Vec, /// Limit result set to users matching at least one specific role provided. Accepts csv list or single role. + #[uniffi(default = [])] pub roles: Vec, /// Limit result set to users matching at least one specific capability provided. Accepts csv list or single capability. + #[uniffi(default = [])] pub capabilities: Vec, /// Limit result set to users who are considered authors. /// One of: `authors` + #[uniffi(default = None)] pub who: Option, /// Limit result set to users who have published posts. + #[uniffi(default = None)] pub has_published_posts: Option, } @@ -237,6 +250,7 @@ pub struct UserCreateParams { pub slug: Option, /// Roles assigned to the user. #[serde(skip_serializing_if = "Vec::is_empty")] + #[uniffi(default = [])] pub roles: Vec, /// Meta fields. #[uniffi(default = None)] @@ -267,40 +281,52 @@ impl UserCreateParams { #[derive(Debug, Default, Serialize, uniffi::Record)] pub struct UserUpdateParams { /// Display name for the user. + #[uniffi(default = None)] #[serde(skip_serializing_if = "Option::is_none")] pub name: Option, /// First name for the user. + #[uniffi(default = None)] #[serde(skip_serializing_if = "Option::is_none")] pub first_name: Option, /// Last name for the user. + #[uniffi(default = None)] #[serde(skip_serializing_if = "Option::is_none")] pub last_name: Option, /// The email address for the user. + #[uniffi(default = None)] #[serde(skip_serializing_if = "Option::is_none")] pub email: Option, /// URL of the user. + #[uniffi(default = None)] #[serde(skip_serializing_if = "Option::is_none")] pub url: Option, /// Description of the user. + #[uniffi(default = None)] #[serde(skip_serializing_if = "Option::is_none")] pub description: Option, /// Locale for the user. /// One of: , `en_US` + #[uniffi(default = None)] #[serde(skip_serializing_if = "Option::is_none")] pub locale: Option, /// The nickname for the user. + #[uniffi(default = None)] #[serde(skip_serializing_if = "Option::is_none")] pub nickname: Option, /// An alphanumeric identifier for the user. + #[uniffi(default = None)] #[serde(skip_serializing_if = "Option::is_none")] pub slug: Option, /// Roles assigned to the user. #[serde(skip_serializing_if = "Vec::is_empty")] + #[uniffi(default = [])] pub roles: Vec, /// Password for the user (never included). + #[uniffi(default = None)] #[serde(skip_serializing_if = "Option::is_none")] pub password: Option, /// Meta fields. + #[uniffi(default = None)] #[serde(skip_serializing_if = "Option::is_none")] pub meta: Option, }