@@ -3,21 +3,22 @@ import { IterableEmbeddedMessageButton } from './IterableEmbeddedMessageButton';
33import { IterableEmbeddedMessageText } from './IterableEmbeddedMessageText' ;
44
55export class IterableEmbeddedMessageElements {
6- readonly title : string ;
7- readonly body : string ;
6+ readonly title ? : string ;
7+ readonly body ? : string ;
88 readonly mediaUrl ?: string ;
99 readonly mediaUrlCaption ?: string ;
1010 readonly defaultAction ?: IterableEmbeddedMessageDefaultAction ;
1111 readonly buttons ?: IterableEmbeddedMessageButton [ ] ;
1212 readonly text ?: IterableEmbeddedMessageText [ ] ;
13+
1314 constructor (
14- title : string ,
15- body : string ,
16- mediaUrl : string | undefined ,
17- mediaUrlCaption : string | undefined ,
18- defaultAction : IterableEmbeddedMessageDefaultAction | undefined ,
19- buttons : IterableEmbeddedMessageButton [ ] | undefined ,
20- text : IterableEmbeddedMessageText [ ] | undefined
15+ title ? : string ,
16+ body ? : string ,
17+ mediaUrl ? : string ,
18+ mediaUrlCaption ? : string ,
19+ defaultAction ? : IterableEmbeddedMessageDefaultAction ,
20+ buttons ? : IterableEmbeddedMessageButton [ ] ,
21+ text ? : IterableEmbeddedMessageText [ ]
2122 ) {
2223 this . title = title ;
2324 this . body = body ;
@@ -27,4 +28,44 @@ export class IterableEmbeddedMessageElements {
2728 this . buttons = buttons ;
2829 this . text = text ;
2930 }
31+
32+ static fromDict (
33+ dict : Partial < EmbeddedMessageElementsDict >
34+ ) : IterableEmbeddedMessageElements {
35+ const title = dict . title ;
36+ const body = dict . body ;
37+ const mediaUrl = dict . mediaUrl ;
38+ const mediaUrlCaption = dict . mediaUrlCaption ;
39+ const defaultAction = dict . defaultAction
40+ ? IterableEmbeddedMessageDefaultAction . fromDict ( dict . defaultAction )
41+ : undefined ;
42+
43+ const buttons = dict . buttons ?. map ( ( button ) =>
44+ IterableEmbeddedMessageButton . fromDict ( button )
45+ ) ;
46+
47+ const text = dict . text ?. map ( ( text ) =>
48+ IterableEmbeddedMessageText . fromDict ( text )
49+ ) ;
50+
51+ return new IterableEmbeddedMessageElements (
52+ title ,
53+ body ,
54+ mediaUrl ,
55+ mediaUrlCaption ,
56+ defaultAction ,
57+ buttons ,
58+ text
59+ ) ;
60+ }
61+ }
62+
63+ export interface EmbeddedMessageElementsDict {
64+ title ?: string ;
65+ body ?: string ;
66+ mediaUrl ?: string ;
67+ mediaUrlCaption ?: string ;
68+ defaultAction ?: IterableEmbeddedMessageDefaultAction ;
69+ buttons ?: IterableEmbeddedMessageButton [ ] ;
70+ text ?: IterableEmbeddedMessageText [ ] ;
3071}
0 commit comments