Skip to content

Commit 7c2c8aa

Browse files
author
Evan Greer
committed
feat: converts IterableEmbeddedMessageElements constructor
1 parent 5f51526 commit 7c2c8aa

3 files changed

Lines changed: 20 additions & 61 deletions

File tree

src/__tests__/IterableEmbeddedMessageElements.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ describe('IterableEmbeddedMessageElements', () => {
5050
],
5151
};
5252

53-
const elements = IterableEmbeddedMessageElements.fromDict(dict);
53+
const elements = new IterableEmbeddedMessageElements(dict);
5454

5555
expect(elements).toBeInstanceOf(IterableEmbeddedMessageElements);
5656
expect(elements.title).toBe('Awesome Title');
@@ -108,7 +108,7 @@ describe('IterableEmbeddedMessageElements', () => {
108108
body: 'Simple Body',
109109
};
110110

111-
const elements = IterableEmbeddedMessageElements.fromDict(dict);
111+
const elements = new IterableEmbeddedMessageElements(dict);
112112

113113
expect(elements).toBeInstanceOf(IterableEmbeddedMessageElements);
114114
expect(elements.title).toBe('Simple Title');
@@ -127,7 +127,7 @@ describe('IterableEmbeddedMessageElements', () => {
127127

128128
const dict = {};
129129

130-
const elements = IterableEmbeddedMessageElements.fromDict(dict);
130+
const elements = new IterableEmbeddedMessageElements(dict);
131131

132132
expect(elements).toBeInstanceOf(IterableEmbeddedMessageElements);
133133
expect(elements.title).toBeUndefined();
@@ -151,7 +151,7 @@ describe('IterableEmbeddedMessageElements', () => {
151151
mediaUrlCaption: 'Check this out!',
152152
};
153153

154-
const elements = IterableEmbeddedMessageElements.fromDict(dict);
154+
const elements = new IterableEmbeddedMessageElements(dict);
155155

156156
expect(elements).toBeInstanceOf(IterableEmbeddedMessageElements);
157157
expect(elements.title).toBe('Media Title');
@@ -177,7 +177,7 @@ describe('IterableEmbeddedMessageElements', () => {
177177
},
178178
};
179179

180-
const elements = IterableEmbeddedMessageElements.fromDict(dict);
180+
const elements = new IterableEmbeddedMessageElements(dict);
181181

182182
expect(elements).toBeInstanceOf(IterableEmbeddedMessageElements);
183183
expect(elements.title).toBe('Action Title');
@@ -203,7 +203,7 @@ describe('IterableEmbeddedMessageElements', () => {
203203
text: [],
204204
};
205205

206-
const elements = IterableEmbeddedMessageElements.fromDict(dict);
206+
const elements = new IterableEmbeddedMessageElements(dict);
207207

208208
expect(elements).toBeInstanceOf(IterableEmbeddedMessageElements);
209209
expect(elements.title).toBe('Empty Arrays Title');

src/embedded/classes/IterableEmbeddedMessage.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export class IterableEmbeddedMessage {
4141
}
4242
const metadata = IterableEmbeddedMessageMetadata.fromDict(dict.metadata);
4343
const elements = dict.elements
44-
? IterableEmbeddedMessageElements.fromDict(dict.elements)
44+
? new IterableEmbeddedMessageElements(dict.elements)
4545
: undefined;
4646
const payload = dict.payload;
4747
return new IterableEmbeddedMessage(metadata, elements, payload);

src/embedded/classes/IterableEmbeddedMessageElements.ts

Lines changed: 13 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ import { IterableEmbeddedMessageDefaultAction } from './IterableEmbeddedMessageD
22
import { IterableEmbeddedMessageElementsButton } from './IterableEmbeddedMessageElementsButton';
33
import { IterableEmbeddedMessageText } from './IterableEmbeddedMessageText';
44

5+
import type { EmbeddedMessageElementsButtonDict } from './IterableEmbeddedMessageElementsButton';
6+
import type { EmbeddedMessageTextDict } from './IterableEmbeddedMessageText';
7+
58
/**
69
* IterableEmbeddedMessageElements represents the elements of an embedded message.
710
*/
@@ -24,66 +27,22 @@ export class IterableEmbeddedMessageElements {
2427
/**
2528
* Creates an instance of `IterableEmbeddedMessageElements`.
2629
*
27-
* @param title - The title of the embedded message.
28-
* @param body - The body of the embedded message.
29-
* @param mediaUrl - The url of the embedded message image.
30-
* @param mediaUrlCaption - The caption of the embedded message image.
31-
* @param defaultAction - The default action of the embedded message.
32-
* @param buttons - The buttons of the embedded message.
33-
* @param text - The text elements of the embedded message.
34-
*/
35-
constructor(
36-
title?: string,
37-
body?: string,
38-
mediaUrl?: string,
39-
mediaUrlCaption?: string,
40-
defaultAction?: IterableEmbeddedMessageDefaultAction,
41-
buttons?: IterableEmbeddedMessageElementsButton[],
42-
text?: IterableEmbeddedMessageText[]
43-
) {
44-
this.title = title;
45-
this.body = body;
46-
this.mediaUrl = mediaUrl;
47-
this.mediaUrlCaption = mediaUrlCaption;
48-
this.defaultAction = defaultAction;
49-
this.buttons = buttons;
50-
this.text = text;
51-
}
52-
53-
/**
54-
* Creates an instance of `IterableEmbeddedMessageElements` from a dictionary object.
55-
*
5630
* @param dict - The dictionary object containing the properties to initialize the `IterableEmbeddedMessageElements` instance.
57-
* @returns A new instance of `IterableEmbeddedMessageElements` initialized with the provided dictionary properties.
5831
*/
59-
static fromDict(
60-
dict: Partial<EmbeddedMessageElementsDict>
61-
): IterableEmbeddedMessageElements {
62-
const title = dict.title;
63-
const body = dict.body;
64-
const mediaUrl = dict.mediaUrl;
65-
const mediaUrlCaption = dict.mediaUrlCaption;
66-
const defaultAction = dict.defaultAction
32+
constructor(dict: Partial<EmbeddedMessageElementsDict>) {
33+
this.title = dict.title;
34+
this.body = dict.body;
35+
this.mediaUrl = dict.mediaUrl;
36+
this.mediaUrlCaption = dict.mediaUrlCaption;
37+
this.defaultAction = dict.defaultAction
6738
? IterableEmbeddedMessageDefaultAction.fromDict(dict.defaultAction)
6839
: undefined;
6940

70-
const buttons = dict.buttons?.map(
41+
this.buttons = dict.buttons?.map(
7142
(button) => new IterableEmbeddedMessageElementsButton(button)
7243
);
7344

74-
const text = dict.text?.map(
75-
(text) => new IterableEmbeddedMessageText(text)
76-
);
77-
78-
return new IterableEmbeddedMessageElements(
79-
title,
80-
body,
81-
mediaUrl,
82-
mediaUrlCaption,
83-
defaultAction,
84-
buttons,
85-
text
86-
);
45+
this.text = dict.text?.map((text) => new IterableEmbeddedMessageText(text));
8746
}
8847
}
8948

@@ -102,7 +61,7 @@ export interface EmbeddedMessageElementsDict {
10261
/** The default action of the embedded message */
10362
defaultAction?: IterableEmbeddedMessageDefaultAction;
10463
/** The buttons of the embedded message */
105-
buttons?: IterableEmbeddedMessageElementsButton[];
64+
buttons?: EmbeddedMessageElementsButtonDict[];
10665
/** The text elements of the embedded message */
107-
text?: IterableEmbeddedMessageText[];
66+
text?: EmbeddedMessageTextDict[];
10867
}

0 commit comments

Comments
 (0)