Skip to content

Commit 2aee542

Browse files
committed
Fix date_sent to Date conversion
1 parent 598ae8e commit 2aee542

File tree

4 files changed

+63
-9
lines changed

4 files changed

+63
-9
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## [Unreleased]
4+
5+
### Fixed
6+
7+
- Bug with converting message's `date_sent` to `Date`
8+
39
## [2.0.7](https://github.com/smsapi/smsapi-javascript-client/compare/v2.0.6...v2.0.7) - 2023-07-17
410

511
### Changed

src/modules/baseMessageModule/index.spec.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,4 +132,36 @@ describe('Base message module', () => {
132132
expect(error.data).toEqual(errorResponse);
133133
}
134134
});
135+
136+
it('should properly convert date_sent to Date', async () => {
137+
// given
138+
const number = '500000000';
139+
const message = 'someMessage';
140+
141+
const dateSentInSeconds = 1694509448;
142+
143+
const req = nock(API_URL)
144+
.post('/sms.do', {
145+
details: true,
146+
encoding: 'utf-8',
147+
format: 'json',
148+
message,
149+
to: number,
150+
})
151+
.reply(200, {
152+
count: 1,
153+
list: [
154+
{
155+
date_sent: dateSentInSeconds,
156+
},
157+
],
158+
});
159+
160+
// when
161+
const res = await smsapi.sms.sendSms(number, message);
162+
163+
// then
164+
expect(req.isDone()).toBeTruthy();
165+
expect(res.list[0].dateSent.getTime() / 1000).toEqual(dateSentInSeconds);
166+
});
135167
});

src/modules/baseMessageModule/index.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ import snakeCase from 'lodash/snakeCase';
77

88
import { BaseModule } from '../baseModule';
99
import { SmsDetails } from '../sms/types/SmsDetails';
10-
import { MessageResponse } from '../../types/MessageResponse';
10+
import {
11+
ApiMessageResponse,
12+
MessageResponse,
13+
} from '../../types/MessageResponse';
1114
import {
1215
MessageError,
1316
MessageErrorResponse,
@@ -86,8 +89,8 @@ export class BaseMessageModule extends BaseModule {
8689
const formData = this.getFormDataForVmsLocalFile(body, content);
8790

8891
const data = await this.httpClient.post<
89-
MessageResponse | MessageErrorResponse,
90-
MessageResponse | MessageErrorResponse
92+
ApiMessageResponse | MessageErrorResponse,
93+
ApiMessageResponse | MessageErrorResponse
9194
>(this.endpoint, formData.getBuffer(), {
9295
headers: formData.getHeaders(),
9396
});
@@ -100,8 +103,8 @@ export class BaseMessageModule extends BaseModule {
100103
}
101104

102105
const data = await this.httpClient.post<
103-
MessageResponse | MessageErrorResponse,
104-
MessageResponse | MessageErrorResponse
106+
ApiMessageResponse | MessageErrorResponse,
107+
ApiMessageResponse | MessageErrorResponse
105108
>(this.endpoint, body);
106109

107110
if (isMessageErrorResponseData(data)) {
@@ -204,12 +207,12 @@ export class BaseMessageModule extends BaseModule {
204207
});
205208
}
206209

207-
protected formatResponse(response: MessageResponse): MessageResponse {
210+
protected formatResponse(response: ApiMessageResponse): MessageResponse {
208211
return {
209212
...response,
210213
list: response.list.map((sms) => ({
211214
...sms,
212-
dateSent: new Date(sms.dateSent),
215+
dateSent: new Date(sms.dateSent * 1000),
213216
points:
214217
typeof sms.points === 'string' ? parseFloat(sms.points) : sms.points,
215218
})),

src/types/MessageResponse.ts

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { MessageStatus } from './MessageStatus';
22

3-
export interface MessageResponse {
3+
export interface ApiMessageResponse {
44
count: number;
55
list: {
66
id: string;
77
points: number;
88
number: string;
9-
dateSent: Date;
9+
dateSent: number;
1010
submittedNumber: string;
1111
status: MessageStatus;
1212
idx: string | null;
@@ -16,3 +16,16 @@ export interface MessageResponse {
1616
length: number;
1717
parts?: number;
1818
}
19+
20+
export interface MessageResponse extends Omit<ApiMessageResponse, 'list'> {
21+
list: {
22+
id: string;
23+
points: number;
24+
number: string;
25+
dateSent: Date;
26+
submittedNumber: string;
27+
status: MessageStatus;
28+
idx: string | null;
29+
parts?: number;
30+
}[];
31+
}

0 commit comments

Comments
 (0)