///|
/// Describes the parameters of a suggested post.
pub struct SuggestedPostParameters {
text : String?
link_preview_options : LinkPreviewOptions?
is_disabled : Bool?
} derive(Show, Eq)
///|
/// Creates a new [SuggestedPostParameters].
pub fn SuggestedPostParameters::new(
text? : String,
link_preview_options? : LinkPreviewOptions,
is_disabled? : Bool,
) -> SuggestedPostParameters {
{ text, link_preview_options, is_disabled }
}
///|
pub impl ToJson for SuggestedPostParameters with to_json(self) {
let object : Map[String, Json] = {}
if self.text is Some(v) {
object["text"] = v.to_json()
}
if self.link_preview_options is Some(v) {
object["link_preview_options"] = v.to_json()
}
if self.is_disabled is Some(v) {
object["is_disabled"] = v.to_json()
}
object.to_json()
}
///|
pub impl @json.FromJson for SuggestedPostParameters with from_json(json, path) {
guard json is Object(object) else {
raise @json.JsonDecodeError(
(path, "Expected object for SuggestedPostParameters"),
)
}
let text : String? = if object.get("text") is Some(v) {
Some(@json.from_json(v, path~))
} else {
None
}
let link_preview_options : LinkPreviewOptions? = if object.get(
"link_preview_options",
)
is Some(v) {
Some(@json.from_json(v, path~))
} else {
None
}
let is_disabled : Bool? = if object.get("is_disabled") is Some(v) {
Some(@json.from_json(v, path~))
} else {
None
}
{ text, link_preview_options, is_disabled }
}
///|
/// Describes a suggested post in a channel direct messages chat.
pub struct SuggestedPostInfo {
suggested_post_parameters : SuggestedPostParameters?
is_approved : Bool
is_declined : Bool
is_paid : Bool
} derive(Show, Eq)
///|
/// Creates a new [SuggestedPostInfo].
pub fn SuggestedPostInfo::new(
suggested_post_parameters? : SuggestedPostParameters,
is_approved~ : Bool,
is_declined~ : Bool,
is_paid~ : Bool,
) -> SuggestedPostInfo {
{ suggested_post_parameters, is_approved, is_declined, is_paid }
}
///|
pub impl ToJson for SuggestedPostInfo with to_json(self) {
let object : Map[String, Json] = {
"is_approved": self.is_approved.to_json(),
"is_declined": self.is_declined.to_json(),
"is_paid": self.is_paid.to_json(),
}
if self.suggested_post_parameters is Some(v) {
object["suggested_post_parameters"] = v.to_json()
}
object.to_json()
}
///|
pub impl @json.FromJson for SuggestedPostInfo with from_json(json, path) {
guard json is Object(object) else {
raise @json.JsonDecodeError((path, "Expected object for SuggestedPostInfo"))
}
let suggested_post_parameters : SuggestedPostParameters? = if object.get(
"suggested_post_parameters",
)
is Some(v) {
Some(@json.from_json(v, path~))
} else {
None
}
let is_approved : Bool = @json.from_json(object["is_approved"], path~)
let is_declined : Bool = @json.from_json(object["is_declined"], path~)
let is_paid : Bool = @json.from_json(object["is_paid"], path~)
{ suggested_post_parameters, is_approved, is_declined, is_paid }
}
///|
/// Describes the price of a suggested post.
pub struct SuggestedPostPrice {
star_count : Int
} derive(Show, Eq)
///|
/// Creates a new [SuggestedPostPrice].
pub fn SuggestedPostPrice::new(star_count~ : Int) -> SuggestedPostPrice {
{ star_count, }
}
///|
pub impl ToJson for SuggestedPostPrice with to_json(self) {
let object : Map[String, Json] = { "star_count": self.star_count.to_json() }
object.to_json()
}
///|
pub impl @json.FromJson for SuggestedPostPrice with from_json(json, path) {
guard json is Object(object) else {
raise @json.JsonDecodeError(
(path, "Expected object for SuggestedPostPrice"),
)
}
let star_count : Int = @json.from_json(object["star_count"], path~)
{ star_count, }
}
///|
/// Describes a service message about the approval of a suggested post.
pub struct SuggestedPostApproved {
user : User
suggested_post_info : SuggestedPostInfo
} derive(Show, Eq)
///|
/// Creates a new [SuggestedPostApproved].
pub fn SuggestedPostApproved::new(
user~ : User,
suggested_post_info~ : SuggestedPostInfo,
) -> SuggestedPostApproved {
{ user, suggested_post_info }
}
///|
pub impl ToJson for SuggestedPostApproved with to_json(self) {
let object : Map[String, Json] = {
"user": self.user.to_json(),
"suggested_post_info": self.suggested_post_info.to_json(),
}
object.to_json()
}
///|
pub impl @json.FromJson for SuggestedPostApproved with from_json(json, path) {
guard json is Object(object) else {
raise @json.JsonDecodeError(
(path, "Expected object for SuggestedPostApproved"),
)
}
let user : User = @json.from_json(object["user"], path~)
let suggested_post_info : SuggestedPostInfo = @json.from_json(
object["suggested_post_info"],
path~,
)
{ user, suggested_post_info }
}
///|
/// Describes a service message about the rejection of a suggested post.
pub struct SuggestedPostDeclined {
user : User
suggested_post_info : SuggestedPostInfo
} derive(Show, Eq)
///|
/// Creates a new [SuggestedPostDeclined].
pub fn SuggestedPostDeclined::new(
user~ : User,
suggested_post_info~ : SuggestedPostInfo,
) -> SuggestedPostDeclined {
{ user, suggested_post_info }
}
///|
pub impl ToJson for SuggestedPostDeclined with to_json(self) {
let object : Map[String, Json] = {
"user": self.user.to_json(),
"suggested_post_info": self.suggested_post_info.to_json(),
}
object.to_json()
}
///|
pub impl @json.FromJson for SuggestedPostDeclined with from_json(json, path) {
guard json is Object(object) else {
raise @json.JsonDecodeError(
(path, "Expected object for SuggestedPostDeclined"),
)
}
let user : User = @json.from_json(object["user"], path~)
let suggested_post_info : SuggestedPostInfo = @json.from_json(
object["suggested_post_info"],
path~,
)
{ user, suggested_post_info }
}
///|
/// Describes a service message about a successful payment for a suggested post.
pub struct SuggestedPostPaid {
user : User
suggested_post_info : SuggestedPostInfo
} derive(Show, Eq)
///|
/// Creates a new [SuggestedPostPaid].
pub fn SuggestedPostPaid::new(
user~ : User,
suggested_post_info~ : SuggestedPostInfo,
) -> SuggestedPostPaid {
{ user, suggested_post_info }
}
///|
pub impl ToJson for SuggestedPostPaid with to_json(self) {
let object : Map[String, Json] = {
"user": self.user.to_json(),
"suggested_post_info": self.suggested_post_info.to_json(),
}
object.to_json()
}
///|
pub impl @json.FromJson for SuggestedPostPaid with from_json(json, path) {
guard json is Object(object) else {
raise @json.JsonDecodeError((path, "Expected object for SuggestedPostPaid"))
}
let user : User = @json.from_json(object["user"], path~)
let suggested_post_info : SuggestedPostInfo = @json.from_json(
object["suggested_post_info"],
path~,
)
{ user, suggested_post_info }
}
///|
/// Describes a service message about the failed approval of a suggested post.
pub struct SuggestedPostApprovalFailed {
user : User
suggested_post_info : SuggestedPostInfo
} derive(Show, Eq)
///|
/// Creates a new [SuggestedPostApprovalFailed].
pub fn SuggestedPostApprovalFailed::new(
user~ : User,
suggested_post_info~ : SuggestedPostInfo,
) -> SuggestedPostApprovalFailed {
{ user, suggested_post_info }
}
///|
pub impl ToJson for SuggestedPostApprovalFailed with to_json(self) {
let object : Map[String, Json] = {
"user": self.user.to_json(),
"suggested_post_info": self.suggested_post_info.to_json(),
}
object.to_json()
}
///|
pub impl @json.FromJson for SuggestedPostApprovalFailed with from_json(
json,
path,
) {
guard json is Object(object) else {
raise @json.JsonDecodeError(
(path, "Expected object for SuggestedPostApprovalFailed"),
)
}
let user : User = @json.from_json(object["user"], path~)
let suggested_post_info : SuggestedPostInfo = @json.from_json(
object["suggested_post_info"],
path~,
)
{ user, suggested_post_info }
}