mirror of
https://github.com/System-End/slack-morphism-rust.git
synced 2026-04-19 19:45:13 +00:00
feat: Updated fields for SlackUserProfile (#325)
This commit is contained in:
parent
6c8d495cdf
commit
309c5168cb
5 changed files with 39 additions and 5 deletions
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "slack-morphism"
|
||||
version = "2.12.0"
|
||||
version = "2.14.0"
|
||||
authors = ["Abdulla Abdurakhmanov <me@abdolence.dev>"]
|
||||
edition = "2021"
|
||||
license = "Apache-2.0"
|
||||
|
|
|
|||
|
|
@ -1094,7 +1094,7 @@ mod test {
|
|||
let payload = include_str!("./fixtures/slack_image_blocks.json");
|
||||
let content: SlackMessageContent = serde_json::from_str(payload)?;
|
||||
let blocks = content.blocks.expect("Blocks should not be empty");
|
||||
match blocks.get(0) {
|
||||
match blocks.first() {
|
||||
Some(SlackBlock::Section(section)) => match §ion.accessory {
|
||||
Some(SlackSectionBlockElement::Image(image)) => {
|
||||
assert_eq!(image.alt_text, "alt text for image");
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ mod test {
|
|||
fn test_deserialize_emoji_url_with_escaped_slashes() {
|
||||
let emoji_url = r#""https:\/\/emoji.slack-edge.com\/test_emoji.png""#;
|
||||
|
||||
let r = serde_json::from_str::<SlackEmojiRef>(&emoji_url).unwrap();
|
||||
let r = serde_json::from_str::<SlackEmojiRef>(emoji_url).unwrap();
|
||||
assert_eq!(
|
||||
r,
|
||||
SlackEmojiRef::Url(
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use chrono::serde::ts_seconds;
|
||||
use chrono::{DateTime, TimeZone, Utc};
|
||||
use chrono::{DateTime, NaiveDate, TimeZone, Utc};
|
||||
use rsb_derive::Builder;
|
||||
use rvstruct::ValueStruct;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
|
@ -124,6 +124,15 @@ pub struct SlackBotId(pub String);
|
|||
#[derive(Debug, Eq, PartialEq, Hash, Clone, Serialize, Deserialize, ValueStruct)]
|
||||
pub struct SlackDateTime(#[serde(with = "ts_seconds")] pub DateTime<Utc>);
|
||||
|
||||
#[derive(Debug, Eq, PartialEq, Hash, Clone, Serialize, Deserialize, ValueStruct)]
|
||||
pub struct SlackDate(pub String);
|
||||
|
||||
impl SlackDate {
|
||||
pub fn to_naive_date(&self) -> Option<NaiveDate> {
|
||||
NaiveDate::parse_from_str(self.value(), "%Y-%m-%d").ok()
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Eq, PartialEq, Hash, Clone, Serialize, Deserialize, ValueStruct)]
|
||||
pub struct SlackLocale(pub String);
|
||||
|
||||
|
|
@ -181,6 +190,9 @@ impl fmt::Debug for SlackSigningSecret {
|
|||
#[derive(Debug, Eq, PartialEq, Hash, Clone, Serialize, Deserialize, ValueStruct)]
|
||||
pub struct EmailAddress(pub String);
|
||||
|
||||
#[derive(Debug, Eq, PartialEq, Hash, Clone, Serialize, Deserialize, ValueStruct)]
|
||||
pub struct PhoneNumber(pub String);
|
||||
|
||||
#[serde_as]
|
||||
#[skip_serializing_none]
|
||||
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
use crate::*;
|
||||
use std::collections::HashMap;
|
||||
|
||||
use crate::SlackUserId;
|
||||
use rsb_derive::Builder;
|
||||
use rvstruct::*;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_with::{serde_as, skip_serializing_none, DisplayFromStr};
|
||||
use serde_with::{serde_as, skip_serializing_none, DisplayFromStr, NoneAsEmptyString};
|
||||
|
||||
#[skip_serializing_none]
|
||||
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
|
||||
|
|
@ -26,6 +27,7 @@ pub struct SlackUser {
|
|||
pub enterprise_user: Option<SlackEnterpriseUser>,
|
||||
}
|
||||
|
||||
#[serde_as]
|
||||
#[skip_serializing_none]
|
||||
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
|
||||
pub struct SlackUserProfile {
|
||||
|
|
@ -42,6 +44,15 @@ pub struct SlackUserProfile {
|
|||
#[serde(flatten)]
|
||||
pub icon: Option<SlackIcon>,
|
||||
pub team: Option<SlackTeamId>,
|
||||
pub start_date: Option<SlackDate>,
|
||||
pub first_name: Option<String>,
|
||||
pub last_name: Option<String>,
|
||||
#[serde_as(as = "NoneAsEmptyString")]
|
||||
pub phone: Option<PhoneNumber>,
|
||||
pub pronouns: Option<String>,
|
||||
pub title: Option<String>,
|
||||
|
||||
pub fields: Option<HashMap<SlackUserProfileFieldId, SlackUserProfileFieldValue>>,
|
||||
}
|
||||
|
||||
#[skip_serializing_none]
|
||||
|
|
@ -123,3 +134,14 @@ pub struct SlackEnterpriseUser {
|
|||
pub flags: SlackUserFlags,
|
||||
pub teams: Option<Vec<SlackTeamId>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Eq, PartialEq, Hash, Clone, Serialize, Deserialize, ValueStruct)]
|
||||
pub struct SlackUserProfileFieldId(pub String);
|
||||
|
||||
#[serde_as]
|
||||
#[derive(Debug, Eq, PartialEq, Clone, Serialize, Deserialize)]
|
||||
pub struct SlackUserProfileFieldValue {
|
||||
pub value: String,
|
||||
#[serde_as(as = "NoneAsEmptyString")]
|
||||
pub alt: Option<String>,
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue