@dawntech/blip-tools 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +55 -0
- package/dist/index.mjs +55 -0
- package/dist/modules/blip-analytics.d.ts +22 -0
- package/dist/modules/blip-main.d.ts +2 -0
- package/dist/modules/blip-monitoring.d.ts +3 -3
- package/dist/types/analytics.d.ts +21 -0
- package/dist/types/index.d.ts +3 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -633,6 +633,59 @@ class BlipMonitoring {
|
|
|
633
633
|
}
|
|
634
634
|
}
|
|
635
635
|
|
|
636
|
+
class BlipAnalytics {
|
|
637
|
+
api;
|
|
638
|
+
constructor(context) {
|
|
639
|
+
this.api = context.api;
|
|
640
|
+
}
|
|
641
|
+
/**
|
|
642
|
+
* Returns a list of reports by day with tickets status. Ommiting dates will return only the last report. Dates are expected to be in yyyy-mm-dd format.
|
|
643
|
+
*/
|
|
644
|
+
async getTicketReports({ beginDate, endDate } = {}) {
|
|
645
|
+
try {
|
|
646
|
+
const params = {
|
|
647
|
+
beginDate,
|
|
648
|
+
endDate,
|
|
649
|
+
};
|
|
650
|
+
const body = {
|
|
651
|
+
id: crypto.randomUUID(),
|
|
652
|
+
to: 'postmaster@desk.msging.net',
|
|
653
|
+
method: 'get',
|
|
654
|
+
uri: `/analytics/reports/tickets?${encodeBlipParams(params)}`,
|
|
655
|
+
};
|
|
656
|
+
const response = await this.api.post('/commands', body);
|
|
657
|
+
validateResponse(response);
|
|
658
|
+
return response.data.resource.items;
|
|
659
|
+
}
|
|
660
|
+
catch (error) {
|
|
661
|
+
throw handleError(error);
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
/**
|
|
665
|
+
* Returns ticket timings metrics. Dates are expected to be in yyyy-mm-dd format.
|
|
666
|
+
*/
|
|
667
|
+
async getTicketTimings({ beginDate, endDate } = {}) {
|
|
668
|
+
try {
|
|
669
|
+
const params = {
|
|
670
|
+
beginDate,
|
|
671
|
+
endDate,
|
|
672
|
+
};
|
|
673
|
+
const body = {
|
|
674
|
+
id: crypto.randomUUID(),
|
|
675
|
+
to: 'postmaster@desk.msging.net',
|
|
676
|
+
method: 'get',
|
|
677
|
+
uri: ['/analytics/reports/timings', encodeBlipParams(params)].filter((p) => p).join('?'),
|
|
678
|
+
};
|
|
679
|
+
const response = await this.api.post('/commands', body);
|
|
680
|
+
validateResponse(response);
|
|
681
|
+
return response.data.resource;
|
|
682
|
+
}
|
|
683
|
+
catch (error) {
|
|
684
|
+
throw handleError(error);
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
|
|
636
689
|
class Blip {
|
|
637
690
|
api;
|
|
638
691
|
bucket;
|
|
@@ -646,6 +699,7 @@ class Blip {
|
|
|
646
699
|
ticket;
|
|
647
700
|
whatsapp;
|
|
648
701
|
monitoring;
|
|
702
|
+
analytics;
|
|
649
703
|
constructor(params) {
|
|
650
704
|
validateInstance(params);
|
|
651
705
|
this.api = axios.create({
|
|
@@ -666,6 +720,7 @@ class Blip {
|
|
|
666
720
|
this.ticket = new BlipTicket({ api: this.api });
|
|
667
721
|
this.whatsapp = new BlipWhatsapp({ api: this.api });
|
|
668
722
|
this.monitoring = new BlipMonitoring({ api: this.api });
|
|
723
|
+
this.analytics = new BlipAnalytics({ api: this.api });
|
|
669
724
|
}
|
|
670
725
|
}
|
|
671
726
|
|
package/dist/index.mjs
CHANGED
|
@@ -631,6 +631,59 @@ class BlipMonitoring {
|
|
|
631
631
|
}
|
|
632
632
|
}
|
|
633
633
|
|
|
634
|
+
class BlipAnalytics {
|
|
635
|
+
api;
|
|
636
|
+
constructor(context) {
|
|
637
|
+
this.api = context.api;
|
|
638
|
+
}
|
|
639
|
+
/**
|
|
640
|
+
* Returns a list of reports by day with tickets status. Ommiting dates will return only the last report. Dates are expected to be in yyyy-mm-dd format.
|
|
641
|
+
*/
|
|
642
|
+
async getTicketReports({ beginDate, endDate } = {}) {
|
|
643
|
+
try {
|
|
644
|
+
const params = {
|
|
645
|
+
beginDate,
|
|
646
|
+
endDate,
|
|
647
|
+
};
|
|
648
|
+
const body = {
|
|
649
|
+
id: randomUUID(),
|
|
650
|
+
to: 'postmaster@desk.msging.net',
|
|
651
|
+
method: 'get',
|
|
652
|
+
uri: `/analytics/reports/tickets?${encodeBlipParams(params)}`,
|
|
653
|
+
};
|
|
654
|
+
const response = await this.api.post('/commands', body);
|
|
655
|
+
validateResponse(response);
|
|
656
|
+
return response.data.resource.items;
|
|
657
|
+
}
|
|
658
|
+
catch (error) {
|
|
659
|
+
throw handleError(error);
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
/**
|
|
663
|
+
* Returns ticket timings metrics. Dates are expected to be in yyyy-mm-dd format.
|
|
664
|
+
*/
|
|
665
|
+
async getTicketTimings({ beginDate, endDate } = {}) {
|
|
666
|
+
try {
|
|
667
|
+
const params = {
|
|
668
|
+
beginDate,
|
|
669
|
+
endDate,
|
|
670
|
+
};
|
|
671
|
+
const body = {
|
|
672
|
+
id: randomUUID(),
|
|
673
|
+
to: 'postmaster@desk.msging.net',
|
|
674
|
+
method: 'get',
|
|
675
|
+
uri: ['/analytics/reports/timings', encodeBlipParams(params)].filter((p) => p).join('?'),
|
|
676
|
+
};
|
|
677
|
+
const response = await this.api.post('/commands', body);
|
|
678
|
+
validateResponse(response);
|
|
679
|
+
return response.data.resource;
|
|
680
|
+
}
|
|
681
|
+
catch (error) {
|
|
682
|
+
throw handleError(error);
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
|
|
634
687
|
class Blip {
|
|
635
688
|
api;
|
|
636
689
|
bucket;
|
|
@@ -644,6 +697,7 @@ class Blip {
|
|
|
644
697
|
ticket;
|
|
645
698
|
whatsapp;
|
|
646
699
|
monitoring;
|
|
700
|
+
analytics;
|
|
647
701
|
constructor(params) {
|
|
648
702
|
validateInstance(params);
|
|
649
703
|
this.api = axios.create({
|
|
@@ -664,6 +718,7 @@ class Blip {
|
|
|
664
718
|
this.ticket = new BlipTicket({ api: this.api });
|
|
665
719
|
this.whatsapp = new BlipWhatsapp({ api: this.api });
|
|
666
720
|
this.monitoring = new BlipMonitoring({ api: this.api });
|
|
721
|
+
this.analytics = new BlipAnalytics({ api: this.api });
|
|
667
722
|
}
|
|
668
723
|
}
|
|
669
724
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
|
+
import { TicketAnalyticsReport, TicketAnalyticsTimings } from '../types/analytics';
|
|
3
|
+
export default class BlipAnalytics {
|
|
4
|
+
private api;
|
|
5
|
+
constructor(context: {
|
|
6
|
+
api: AxiosInstance;
|
|
7
|
+
});
|
|
8
|
+
/**
|
|
9
|
+
* Returns a list of reports by day with tickets status. Ommiting dates will return only the last report. Dates are expected to be in yyyy-mm-dd format.
|
|
10
|
+
*/
|
|
11
|
+
getTicketReports({ beginDate, endDate }?: {
|
|
12
|
+
beginDate?: string;
|
|
13
|
+
endDate?: string;
|
|
14
|
+
}): Promise<TicketAnalyticsReport[]>;
|
|
15
|
+
/**
|
|
16
|
+
* Returns ticket timings metrics. Dates are expected to be in yyyy-mm-dd format.
|
|
17
|
+
*/
|
|
18
|
+
getTicketTimings({ beginDate, endDate }?: {
|
|
19
|
+
beginDate?: string;
|
|
20
|
+
endDate?: string;
|
|
21
|
+
}): Promise<TicketAnalyticsTimings>;
|
|
22
|
+
}
|
|
@@ -10,6 +10,7 @@ import BlipTicket from './blip-ticket';
|
|
|
10
10
|
import BlipWhatsapp from './blip-whatsapp';
|
|
11
11
|
import BlipContact from './blip-contact';
|
|
12
12
|
import BlipMonitoring from './blip-monitoring';
|
|
13
|
+
import BlipAnalytics from './blip-analytics';
|
|
13
14
|
export declare class Blip {
|
|
14
15
|
private api;
|
|
15
16
|
bucket: BlipBucket;
|
|
@@ -23,5 +24,6 @@ export declare class Blip {
|
|
|
23
24
|
ticket: BlipTicket;
|
|
24
25
|
whatsapp: BlipWhatsapp;
|
|
25
26
|
monitoring: BlipMonitoring;
|
|
27
|
+
analytics: BlipAnalytics;
|
|
26
28
|
constructor(params: BlipConstructor);
|
|
27
29
|
}
|
|
@@ -5,7 +5,7 @@ export default class BlipMonitoring {
|
|
|
5
5
|
constructor(context: {
|
|
6
6
|
api: AxiosInstance;
|
|
7
7
|
});
|
|
8
|
-
getTickets(): Promise<MonitoredTickets
|
|
9
|
-
getTicketMetrics(): Promise<MonitoredTicketMetrics
|
|
10
|
-
getAttendantStatusMetrics(): Promise<MonitoredAttendantStatusMetrics
|
|
8
|
+
getTickets(): Promise<MonitoredTickets>;
|
|
9
|
+
getTicketMetrics(): Promise<MonitoredTicketMetrics>;
|
|
10
|
+
getAttendantStatusMetrics(): Promise<MonitoredAttendantStatusMetrics>;
|
|
11
11
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface TicketAnalyticsReport {
|
|
2
|
+
date: string;
|
|
3
|
+
waiting: number;
|
|
4
|
+
open: number;
|
|
5
|
+
closed: number;
|
|
6
|
+
closedAttendant: number;
|
|
7
|
+
closedClient: number;
|
|
8
|
+
transferred: number;
|
|
9
|
+
missed: number;
|
|
10
|
+
inAttendance: number;
|
|
11
|
+
}
|
|
12
|
+
export interface TicketAnalyticsTimings {
|
|
13
|
+
maxQueueTime: string;
|
|
14
|
+
maxFirstResponseTime: string;
|
|
15
|
+
maxWithoutFirstResponseTime: string;
|
|
16
|
+
avgQueueTime: string;
|
|
17
|
+
avgFirstResponseTime: string;
|
|
18
|
+
avgWaitTime: string;
|
|
19
|
+
avgResponseTime: string;
|
|
20
|
+
avgAttendanceTime: string;
|
|
21
|
+
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -4,4 +4,6 @@ import { BlipRequestBody, BlipResponse, BlipArrayBody } from './blip';
|
|
|
4
4
|
import { Parameter, Component, Template } from './template';
|
|
5
5
|
import { TicketSearchResult } from './ticket-search-result';
|
|
6
6
|
import { Ticket } from './ticket';
|
|
7
|
-
|
|
7
|
+
import { MonitoredTickets, MonitoredTicketMetrics, MonitoredAttendantStatusMetrics } from './monitoring';
|
|
8
|
+
import { TicketAnalyticsReport, TicketAnalyticsTimings } from './analytics';
|
|
9
|
+
export { AttendanceHourContainer, BlipConstructor, BlipRequestBody, BlipResponse, BlipArrayBody, Parameter, Component, Template, TicketAnalyticsReport, MonitoredTickets, MonitoredTicketMetrics, MonitoredAttendantStatusMetrics, TicketSearchResult, TicketAnalyticsTimings, Ticket, };
|