Skip to content

Commit b47e121

Browse files
authored
Add message endpoint (#5)
1 parent c75c18f commit b47e121

File tree

4 files changed

+55
-2
lines changed

4 files changed

+55
-2
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "dimescheduler",
33
"description": "The Dime.Scheduler SDK",
4-
"version": "0.1.1",
4+
"version": "0.2.0",
55
"main": "./dist/index.ts",
66
"types": "./dist/index.d.ts",
77
"module": "./dist/esm/index.js",

src/lib/client.ts

+10-1
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,26 @@
11
import ImportEndPoint from './endpoints/import';
2+
import ImportResponse from './endpoints/importresponse';
3+
import MessageEndpoint from './endpoints/message';
24
import Environment from './environment';
35
import IImportModel from './models/base/iimportmodel';
6+
import { Severity } from './models/constants/severity';
47

58
class DimeSchedulerClient {
69
private importEndPoint: ImportEndPoint;
10+
private messageEndPoint: MessageEndpoint;
711

812
constructor(apiKey: string, env: Environment = Environment.Production) {
913
this.importEndPoint = new ImportEndPoint(env, apiKey);
14+
this.messageEndPoint = new MessageEndpoint(env, apiKey);
1015
}
1116

12-
import(importable: IImportModel | Array<IImportModel>, append: boolean = true) {
17+
import(importable: IImportModel | Array<IImportModel>, append: boolean = true): Promise<ImportResponse> {
1318
return this.importEndPoint.processAsync(importable, append);
1419
}
20+
21+
sendMessage(text: string, severity: Severity, user?: string): Promise<void> {
22+
return this.messageEndPoint.processAsync(text, severity, user);
23+
}
1524
}
1625

1726
export default DimeSchedulerClient;

src/lib/endpoints/message.ts

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import axios from 'axios';
2+
import Endpoint from './endpoint';
3+
import Environment from '../environment';
4+
import { Severity } from '../models/constants/severity';
5+
6+
class MessageEndpoint extends Endpoint {
7+
constructor(env: Environment, apiKey: string) {
8+
super(env, apiKey);
9+
}
10+
11+
async processAsync(text: string, severity: Severity, user?: string): Promise<void> {
12+
const params = {
13+
Text: text,
14+
User: user,
15+
Severity: severity
16+
};
17+
18+
const body = JSON.stringify(params);
19+
20+
const headers = {
21+
'X-API-KEY': this.apiKey,
22+
'Content-Type': 'application/json',
23+
'Accept': 'application/json'
24+
};
25+
26+
const url = this.uri + '/message';
27+
await axios.post(url, body, { headers: headers });
28+
}
29+
}
30+
31+
export default MessageEndpoint;

test/message.ts

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import DimeSchedulerClient, { Environment } from '../dist';
2+
3+
import { apiKey } from "./testvars";
4+
import { Severity } from '../dist/lib/models/constants/severity';
5+
6+
describe('Message', function () {
7+
describe('#sendMessage()', function () {
8+
it.only('Should successfully send message', async () => {
9+
const client = new DimeSchedulerClient(apiKey, Environment.Test);
10+
await client.sendMessage("Hello world!", Severity.Warning);
11+
});
12+
});
13+
});

0 commit comments

Comments
 (0)