@talkpilot/core-db 1.0.3 → 1.0.7
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/talkpilot/agents/agents.getters.d.ts +7 -7
- package/dist/talkpilot/agents/agents.getters.d.ts.map +1 -1
- package/dist/talkpilot/calls/calls.getters.d.ts +5 -2
- package/dist/talkpilot/calls/calls.getters.d.ts.map +1 -1
- package/dist/talkpilot/calls/calls.getters.js +25 -1
- package/dist/talkpilot/calls/calls.getters.js.map +1 -1
- package/dist/talkpilot/calls/calls.types.d.ts +31 -1
- package/dist/talkpilot/calls/calls.types.d.ts.map +1 -1
- package/dist/talkpilot/calls/calls.types.js +3 -0
- package/dist/talkpilot/calls/calls.types.js.map +1 -1
- package/dist/talkpilot/clientAudioBuffers/clientAudioBuffer.getters.js +2 -2
- package/dist/talkpilot/clientAudioBuffers/clientAudioBuffer.getters.js.map +1 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.d.ts +1 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.d.ts.map +1 -1
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.js +5 -2
- package/dist/talkpilot/clientsConfig/clientsConfig.getters.js.map +1 -1
- package/dist/talkpilot/groups/groups.getters.d.ts +1 -1
- package/dist/talkpilot/groups/groups.getters.d.ts.map +1 -1
- package/dist/talkpilot/phone_numbers/phone_numbers.getter.d.ts +6 -3
- package/dist/talkpilot/phone_numbers/phone_numbers.getter.d.ts.map +1 -1
- package/dist/talkpilot/phone_numbers/phone_numbers.getter.js +35 -19
- package/dist/talkpilot/phone_numbers/phone_numbers.getter.js.map +1 -1
- package/dist/talkpilot/plans/plans.getters.d.ts +4 -2
- package/dist/talkpilot/plans/plans.getters.d.ts.map +1 -1
- package/dist/talkpilot/plans/plans.getters.js +14 -11
- package/dist/talkpilot/plans/plans.getters.js.map +1 -1
- package/dist/talkpilot/results/results.types.d.ts +2 -0
- package/dist/talkpilot/results/results.types.d.ts.map +1 -1
- package/dist/talkpilot/sessions/sessions.getter.d.ts.map +1 -1
- package/dist/talkpilot/sessions/sessions.getter.js +57 -6
- package/dist/talkpilot/sessions/sessions.getter.js.map +1 -1
- package/dist/talkpilot/subscriptions/subscriptions.getters.d.ts +2 -1
- package/dist/talkpilot/subscriptions/subscriptions.getters.d.ts.map +1 -1
- package/dist/talkpilot/subscriptions/subscriptions.getters.js +9 -11
- package/dist/talkpilot/subscriptions/subscriptions.getters.js.map +1 -1
- package/dist/talkpilot/utils/query.utils.d.ts +8 -0
- package/dist/talkpilot/utils/query.utils.d.ts.map +1 -0
- package/dist/talkpilot/utils/query.utils.js +17 -0
- package/dist/talkpilot/utils/query.utils.js.map +1 -0
- package/jest.config.js +0 -3
- package/package.json +1 -1
- package/src/talkpilot/calls/__tests__/calls.spec.ts +58 -0
- package/src/talkpilot/calls/calls.getters.ts +29 -2
- package/src/talkpilot/calls/calls.types.ts +38 -1
- package/src/talkpilot/clientAudioBuffers/__tests__/clientAudioBuffer.getters.spec.ts +1 -1
- package/src/talkpilot/clientAudioBuffers/clientAudioBuffer.getters.ts +1 -1
- package/src/talkpilot/clientsConfig/clientsConfig.getters.ts +6 -6
- package/src/talkpilot/phone_numbers/__tests__/phone_numbers.spec.ts +57 -1
- package/src/talkpilot/phone_numbers/phone_numbers.getter.ts +49 -18
- package/src/talkpilot/plans/__tests__/plans.spec.ts +66 -0
- package/src/talkpilot/plans/plans.getters.ts +26 -22
- package/src/talkpilot/results/results.types.ts +2 -0
- package/src/talkpilot/sessions/__tests__/sessions.spec.ts +73 -10
- package/src/talkpilot/sessions/sessions.getter.ts +66 -7
- package/src/talkpilot/subscriptions/subscriptions.getters.ts +19 -23
- package/src/talkpilot/utils/__tests__/query.utils.spec.ts +49 -0
- package/src/talkpilot/utils/query.utils.ts +21 -0
- package/tsconfig.json +1 -5
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Agent } from '../index';
|
|
2
|
-
export declare const getAgentsCollection: () => import("mongodb
|
|
3
|
-
export declare const findAgents: (filter?: any) => Promise<import("mongodb
|
|
4
|
-
export declare const findAgentById: (agentId: string) => Promise<import("mongodb
|
|
5
|
-
export declare const findAgentsByClientId: (clientId: string) => Promise<import("mongodb
|
|
6
|
-
export declare const createAgent: (agent: Agent) => Promise<import("mongodb
|
|
7
|
-
export declare const updateAgent: (agentId: string, data: Partial<Agent>) => Promise<import("mongodb
|
|
8
|
-
export declare const removeAgent: (agentId: string) => Promise<import("mongodb
|
|
2
|
+
export declare const getAgentsCollection: () => import("mongodb").Collection<Agent>;
|
|
3
|
+
export declare const findAgents: (filter?: any) => Promise<import("mongodb").WithId<Agent>[]>;
|
|
4
|
+
export declare const findAgentById: (agentId: string) => Promise<import("mongodb").WithId<Agent> | null>;
|
|
5
|
+
export declare const findAgentsByClientId: (clientId: string) => Promise<import("mongodb").WithId<Agent>[]>;
|
|
6
|
+
export declare const createAgent: (agent: Agent) => Promise<import("mongodb").WithId<Agent> | null>;
|
|
7
|
+
export declare const updateAgent: (agentId: string, data: Partial<Agent>) => Promise<import("mongodb").WithId<Agent> | null>;
|
|
8
|
+
export declare const removeAgent: (agentId: string) => Promise<import("mongodb").DeleteResult>;
|
|
9
9
|
//# sourceMappingURL=agents.getters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/agents/agents.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,EAAY,MAAM,UAAU,CAAC;AAElD,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"agents.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/agents/agents.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,EAAY,MAAM,UAAU,CAAC;AAElD,eAAO,MAAM,mBAAmB,2CAE/B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,SAAQ,GAAQ,+CAEhD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,oDAE5C,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,+CAEpD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,OAAO,KAAK,oDAG7C,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,oDAMhE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,4CAE1C,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Call, CallDoc, CallUpdateParams } from '../index';
|
|
1
|
+
import { Call, CallDoc, CallUpdateParams, CallQueryOptions } from '../index';
|
|
2
2
|
import type { CallsByHour } from './calls.types';
|
|
3
|
-
import { ObjectId } from 'mongodb';
|
|
3
|
+
import { ObjectId, Filter } from 'mongodb';
|
|
4
4
|
export declare const getCallsCollection: () => import("mongodb").Collection<Call>;
|
|
5
5
|
export declare const getCallByCallSid: (callSid: string) => Promise<import("mongodb").WithId<Call> | null>;
|
|
6
6
|
export declare const getCallsByPhoneNumber: (phoneNumber: string) => Promise<import("mongodb").WithId<Call>[]>;
|
|
@@ -8,6 +8,9 @@ export declare const getCallsByClient: (clientId: string) => Promise<import("mon
|
|
|
8
8
|
export declare const getCallsByFlow: (flowId: ObjectId) => Promise<import("mongodb").WithId<Call>[]>;
|
|
9
9
|
export declare const createCallDoc: (call: Omit<Call, "createdAt" | "updatedAt" | "env">) => Promise<import("mongodb").InsertOneResult<Call>>;
|
|
10
10
|
export declare const updateCallByCallSid: (callSid: string, updates: CallUpdateParams) => Promise<CallDoc | null>;
|
|
11
|
+
export declare const getCallsByClientAndDateRange: (clientId: string, startDate: Date, endDate: Date) => Promise<import("mongodb").WithId<Call>[]>;
|
|
12
|
+
export declare const findCallsByQuery: (query: Filter<Call>, options?: CallQueryOptions) => Promise<CallDoc[]>;
|
|
13
|
+
export declare const countCalls: (query: Filter<Call>) => Promise<number>;
|
|
11
14
|
/**
|
|
12
15
|
* Aggregate calls stats for a date range (createdAt in [startStr, endStr] in timezone).
|
|
13
16
|
* completed = agentHungUp=true or status='completed'.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calls.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/calls/calls.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"calls.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/calls/calls.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAI3C,eAAO,MAAM,kBAAkB,0CAE9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,mDAE/C,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,aAAa,MAAM,8CAExD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,8CAEhD,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,QAAQ,QAAQ,8CAE9C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC,qDAOhF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,SAAS,MAAM,EACf,SAAS,gBAAgB,KACxB,OAAO,CAAC,OAAO,GAAG,IAAI,CAaxB,CAAC;AAIF,eAAO,MAAM,4BAA4B,GAAI,UAAU,MAAM,EAAE,WAAW,IAAI,EAAE,SAAS,IAAI,8CAU5F,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,EACnB,UAAU,gBAAgB,KACzB,OAAO,CAAC,OAAO,EAAE,CAGnB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,OAAO,MAAM,CAAC,IAAI,CAAC,KAAG,OAAO,CAAC,MAAM,CAEpE,CAAC;AAEF;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAmCjE;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,EAAE,CAAC,CA4BxB"}
|
|
@@ -33,11 +33,12 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.updateCallByCallSid = exports.createCallDoc = exports.getCallsByFlow = exports.getCallsByClient = exports.getCallsByPhoneNumber = exports.getCallByCallSid = exports.getCallsCollection = void 0;
|
|
36
|
+
exports.countCalls = exports.findCallsByQuery = exports.getCallsByClientAndDateRange = exports.updateCallByCallSid = exports.createCallDoc = exports.getCallsByFlow = exports.getCallsByClient = exports.getCallsByPhoneNumber = exports.getCallByCallSid = exports.getCallsCollection = void 0;
|
|
37
37
|
exports.getCallsStatsForDateRange = getCallsStatsForDateRange;
|
|
38
38
|
exports.getCallsHourlyAggregation = getCallsHourlyAggregation;
|
|
39
39
|
const index_1 = require("../index");
|
|
40
40
|
const process = __importStar(require("node:process"));
|
|
41
|
+
const query_utils_1 = require("../utils/query.utils");
|
|
41
42
|
const getCallsCollection = () => {
|
|
42
43
|
return (0, index_1.getDb)().collection('calls');
|
|
43
44
|
};
|
|
@@ -77,6 +78,29 @@ const updateCallByCallSid = async (callSid, updates) => {
|
|
|
77
78
|
return result;
|
|
78
79
|
};
|
|
79
80
|
exports.updateCallByCallSid = updateCallByCallSid;
|
|
81
|
+
// get calls by client and date range
|
|
82
|
+
//client here is the user id
|
|
83
|
+
const getCallsByClientAndDateRange = (clientId, startDate, endDate) => {
|
|
84
|
+
return (0, exports.getCallsCollection)()
|
|
85
|
+
.find({
|
|
86
|
+
clientId,
|
|
87
|
+
createdAt: {
|
|
88
|
+
$gte: startDate,
|
|
89
|
+
$lte: endDate,
|
|
90
|
+
},
|
|
91
|
+
})
|
|
92
|
+
.toArray();
|
|
93
|
+
};
|
|
94
|
+
exports.getCallsByClientAndDateRange = getCallsByClientAndDateRange;
|
|
95
|
+
const findCallsByQuery = async (query, options) => {
|
|
96
|
+
const cursor = (0, exports.getCallsCollection)().find(query);
|
|
97
|
+
return await (0, query_utils_1.applyQueryOptions)(cursor, options).toArray();
|
|
98
|
+
};
|
|
99
|
+
exports.findCallsByQuery = findCallsByQuery;
|
|
100
|
+
const countCalls = async (query) => {
|
|
101
|
+
return (0, exports.getCallsCollection)().countDocuments(query);
|
|
102
|
+
};
|
|
103
|
+
exports.countCalls = countCalls;
|
|
80
104
|
/**
|
|
81
105
|
* Aggregate calls stats for a date range (createdAt in [startStr, endStr] in timezone).
|
|
82
106
|
* completed = agentHungUp=true or status='completed'.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calls.getters.js","sourceRoot":"","sources":["../../../src/talkpilot/calls/calls.getters.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"calls.getters.js","sourceRoot":"","sources":["../../../src/talkpilot/calls/calls.getters.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmFA,8DAwCC;AAKD,8DAgCC;AAhKD,oCAAoF;AAGpF,sDAAwC;AACxC,sDAAyD;AAElD,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,OAAO,IAAA,aAAK,GAAE,CAAC,UAAU,CAAO,OAAO,CAAC,CAAC;AAC3C,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAEK,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,EAAE;IAClD,OAAO,IAAA,0BAAkB,GAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B;AAEK,MAAM,qBAAqB,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC3D,OAAO,IAAA,0BAAkB,GAAE,CAAC,IAAI,CAAC,EAAE,mBAAmB,EAAE,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;AACnF,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AAEK,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAE,EAAE;IACnD,OAAO,IAAA,0BAAkB,GAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;AAC3D,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B;AAEK,MAAM,cAAc,GAAG,CAAC,MAAgB,EAAE,EAAE;IACjD,OAAO,IAAA,0BAAkB,GAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;AACzD,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEK,MAAM,aAAa,GAAG,CAAC,IAAmD,EAAE,EAAE;IACnF,OAAO,IAAA,0BAAkB,GAAE,CAAC,SAAS,CAAC;QACpC,GAAG,IAAI;QACP,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS;KAClC,CAAC,CAAC;AACL,CAAC,CAAC;AAPW,QAAA,aAAa,iBAOxB;AAEK,MAAM,mBAAmB,GAAG,KAAK,EACtC,OAAe,EACf,OAAyB,EACA,EAAE;IAC3B,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAkB,GAAE,CAAC,gBAAgB,CACxD,EAAE,OAAO,EAAE,OAAO,EAAE,EACpB;QACE,IAAI,EAAE;YACJ,GAAG,OAAO;YACV,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB;KACF,EACD,EAAE,cAAc,EAAE,OAAO,EAAE,CAC5B,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAhBW,QAAA,mBAAmB,uBAgB9B;AAEF,qCAAqC;AACrC,4BAA4B;AACrB,MAAM,4BAA4B,GAAG,CAAC,QAAgB,EAAE,SAAe,EAAE,OAAa,EAAE,EAAE;IAC/F,OAAO,IAAA,0BAAkB,GAAE;SACxB,IAAI,CAAC;QACJ,QAAQ;QACR,SAAS,EAAE;YACT,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,OAAO;SACd;KACF,CAAC;SACD,OAAO,EAAE,CAAC;AACf,CAAC,CAAC;AAVW,QAAA,4BAA4B,gCAUvC;AAEK,MAAM,gBAAgB,GAAG,KAAK,EACnC,KAAmB,EACnB,OAA0B,EACN,EAAE;IACtB,MAAM,MAAM,GAAG,IAAA,0BAAkB,GAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO,MAAM,IAAA,+BAAiB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;AAC5D,CAAC,CAAC;AANW,QAAA,gBAAgB,oBAM3B;AAEK,MAAM,UAAU,GAAG,KAAK,EAAE,KAAmB,EAAmB,EAAE;IACvE,OAAO,IAAA,0BAAkB,GAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB;AAEF;;;GAGG;AACI,KAAK,UAAU,yBAAyB,CAC7C,QAAgB,EAChB,QAAgB,EAChB,MAAc,EACd,QAAgB;IAEhB,MAAM,IAAI,GAAG,IAAA,0BAAkB,GAAE,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,IAAI;SACnB,SAAS,CAAoE;QAC5E,kCAAkC;QAClC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE;QACxB,gHAAgH;QAChH;YACE,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,aAAa,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE;iBACpE;gBACD,WAAW,EAAE;oBACX,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;iBAC1E;aACF;SACF;QACD,0EAA0E;QAC1E,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3D,8CAA8C;QAC9C;YACE,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;gBACT,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;gBAClB,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;gBACjC,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;aACvD;SACF;KACF,CAAC;SACD,IAAI,EAAE,CAAC;IACV,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;QACtB,QAAQ,EAAE,GAAG,EAAE,QAAQ,IAAI,CAAC;QAC5B,SAAS,EAAE,GAAG,EAAE,SAAS,IAAI,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,yBAAyB,CAC7C,QAAgB,EAChB,OAAe,EACf,QAAgB;IAEhB,MAAM,IAAI,GAAG,IAAA,0BAAkB,GAAE,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,IAAI;SACpB,SAAS,CAAiC;QACzC,kCAAkC;QAClC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE;QACxB,uGAAuG;QACvG;YACE,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,aAAa,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE;iBACpE;gBACD,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE;aAClD;SACF;QACD,kCAAkC;QAClC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;QAClC,uCAAuC;QACvC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;QAChD,qCAAqC;QACrC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;KACtB,CAAC;SACD,OAAO,EAAE,CAAC;IAEb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAC3B,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK;QAC5C,KAAK,EAAE,CAAC,CAAC,KAAK;KACf,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { ObjectId, WithId } from 'mongodb';
|
|
1
|
+
import { ObjectId, Sort, WithId } from 'mongodb';
|
|
2
2
|
import { TranscriptionSegment } from '../results/results.types';
|
|
3
|
+
export declare const CONFERENCE_ROLE_CUSTOMER: "customer";
|
|
4
|
+
export declare const CONFERENCE_ROLE_SUPERVISOR: "supervisor";
|
|
5
|
+
export type ConferenceRole = typeof CONFERENCE_ROLE_CUSTOMER | typeof CONFERENCE_ROLE_SUPERVISOR | null;
|
|
3
6
|
export type Call = {
|
|
4
7
|
callSid: string;
|
|
5
8
|
flowId: ObjectId;
|
|
@@ -20,7 +23,34 @@ export type Call = {
|
|
|
20
23
|
env: string;
|
|
21
24
|
updatedAt: Date;
|
|
22
25
|
createdAt: Date;
|
|
26
|
+
isAnsweredByAnsweringMachine?: boolean;
|
|
23
27
|
agentHungUp?: boolean;
|
|
28
|
+
endReason?: string;
|
|
29
|
+
conferenceName?: string | null;
|
|
30
|
+
conferenceSid?: string | null;
|
|
31
|
+
conferenceParticipantSid?: string | null;
|
|
32
|
+
isConferenceCall?: boolean;
|
|
33
|
+
conferenceRole?: ConferenceRole;
|
|
34
|
+
redirectedCall?: boolean;
|
|
35
|
+
};
|
|
36
|
+
export type CallQueryOptions = {
|
|
37
|
+
sort?: Sort;
|
|
38
|
+
skip?: number;
|
|
39
|
+
limit?: number;
|
|
40
|
+
};
|
|
41
|
+
export type CallsFilterParams = {
|
|
42
|
+
clientId: string;
|
|
43
|
+
callSid?: string;
|
|
44
|
+
startDate?: Date;
|
|
45
|
+
endDate?: Date;
|
|
46
|
+
status?: string;
|
|
47
|
+
customerPhoneNumber?: string;
|
|
48
|
+
agentPhoneNumber?: string;
|
|
49
|
+
flowId?: string;
|
|
50
|
+
runId?: string;
|
|
51
|
+
sessionId?: string;
|
|
52
|
+
isIncoming?: boolean;
|
|
53
|
+
search?: string;
|
|
24
54
|
};
|
|
25
55
|
export type ImmutableCallFields = 'customerPhoneNumber' | 'agentPhoneNumber' | 'isIncomingCall' | 'isOutgoingCall' | 'sessionId' | 'callSid' | 'flowId' | 'clientId' | 'runId' | 'resultId' | 'env' | 'createdAt';
|
|
26
56
|
export type CallUpdateParams = Partial<Omit<Call, ImmutableCallFields>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calls.types.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/calls/calls.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"calls.types.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/calls/calls.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CONFERENCE_ROLE_SUPERVISOR = exports.CONFERENCE_ROLE_CUSTOMER = void 0;
|
|
4
|
+
exports.CONFERENCE_ROLE_CUSTOMER = 'customer';
|
|
5
|
+
exports.CONFERENCE_ROLE_SUPERVISOR = 'supervisor';
|
|
3
6
|
//# sourceMappingURL=calls.types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calls.types.js","sourceRoot":"","sources":["../../../src/talkpilot/calls/calls.types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"calls.types.js","sourceRoot":"","sources":["../../../src/talkpilot/calls/calls.types.ts"],"names":[],"mappings":";;;AAGa,QAAA,wBAAwB,GAAG,UAAmB,CAAC;AAC/C,QAAA,0BAA0B,GAAG,YAAqB,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getMergedAudioByCallSid = exports.getAudioChunksByCallSid = exports.findClientAudioBuffersByCallSidAndRange = exports.getClientAudioBuffersCollection = exports.insertClientAudioBuffer = void 0;
|
|
4
|
-
const
|
|
4
|
+
const index_1 = require("../index");
|
|
5
5
|
const getClientAudioBuffersCollection = () => {
|
|
6
|
-
return (0,
|
|
6
|
+
return (0, index_1.getDb)().collection('clientAudioBuffers');
|
|
7
7
|
};
|
|
8
8
|
exports.getClientAudioBuffersCollection = getClientAudioBuffersCollection;
|
|
9
9
|
const insertClientAudioBuffer = async (audioBufferInput) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientAudioBuffer.getters.js","sourceRoot":"","sources":["../../../src/talkpilot/clientAudioBuffers/clientAudioBuffer.getters.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"clientAudioBuffer.getters.js","sourceRoot":"","sources":["../../../src/talkpilot/clientAudioBuffers/clientAudioBuffer.getters.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,6 @@ import { ClientConfigDoc } from '../index';
|
|
|
2
2
|
import { Collection } from 'mongodb';
|
|
3
3
|
export declare const getClientsConfigCollection: () => Collection<ClientConfigDoc>;
|
|
4
4
|
export declare const getClientConfig: (clientId: string) => Promise<import("mongodb").WithId<ClientConfigDoc> | null>;
|
|
5
|
-
export declare const getClientConfigByPhone: (
|
|
5
|
+
export declare const getClientConfigByPhone: (phone: string) => Promise<import("mongodb").WithId<ClientConfigDoc> | null>;
|
|
6
6
|
export declare const createClientConfigDoc: (clientConfig: ClientConfigDoc) => Promise<void>;
|
|
7
7
|
//# sourceMappingURL=clientsConfig.getters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientsConfig.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/clientsConfig/clientsConfig.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"clientsConfig.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/clientsConfig/clientsConfig.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAkC,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,eAAO,MAAM,0BAA0B,QAAO,UAAU,CAAC,eAAe,CAEvE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,8DAE/C,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAU,OAAO,MAAM,8DAIzD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,cAAc,eAAe,KAAG,OAAO,CAAC,IAAI,CAEvF,CAAC"}
|
|
@@ -10,8 +10,11 @@ const getClientConfig = (clientId) => {
|
|
|
10
10
|
return (0, exports.getClientsConfigCollection)().findOne({ clientId });
|
|
11
11
|
};
|
|
12
12
|
exports.getClientConfig = getClientConfig;
|
|
13
|
-
const getClientConfigByPhone = async (
|
|
14
|
-
|
|
13
|
+
const getClientConfigByPhone = async (phone) => {
|
|
14
|
+
const client = await (0, index_1.findClientByPhoneNumber)(phone);
|
|
15
|
+
if (!client)
|
|
16
|
+
return null;
|
|
17
|
+
return (0, exports.getClientConfig)(client.clientId);
|
|
15
18
|
};
|
|
16
19
|
exports.getClientConfigByPhone = getClientConfigByPhone;
|
|
17
20
|
const createClientConfigDoc = async (clientConfig) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientsConfig.getters.js","sourceRoot":"","sources":["../../../src/talkpilot/clientsConfig/clientsConfig.getters.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"clientsConfig.getters.js","sourceRoot":"","sources":["../../../src/talkpilot/clientsConfig/clientsConfig.getters.ts"],"names":[],"mappings":";;;AAAA,oCAA2E;AAGpE,MAAM,0BAA0B,GAAG,GAAgC,EAAE;IAC1E,OAAO,IAAA,aAAK,GAAE,CAAC,UAAU,CAAkB,eAAe,CAAC,CAAC;AAC9D,CAAC,CAAC;AAFW,QAAA,0BAA0B,8BAErC;AAEK,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,EAAE;IAClD,OAAO,IAAA,kCAA0B,GAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,MAAM,sBAAsB,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IAC5D,MAAM,MAAM,GAAG,MAAM,IAAA,+BAAuB,EAAC,KAAK,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,IAAA,uBAAe,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC,CAAC;AAJW,QAAA,sBAAsB,0BAIjC;AAEK,MAAM,qBAAqB,GAAG,KAAK,EAAE,YAA6B,EAAiB,EAAE;IAC1F,MAAM,IAAA,kCAA0B,GAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAC7D,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC"}
|
|
@@ -2,7 +2,7 @@ import { Group } from '../index';
|
|
|
2
2
|
import { Collection, Filter } from 'mongodb';
|
|
3
3
|
export declare const getGroupsCollection: () => Collection<Group>;
|
|
4
4
|
export declare const findGroups: (filter: Filter<Group>) => Promise<Group[]>;
|
|
5
|
-
export declare const createGroup: (group: Group) => Promise<import("
|
|
5
|
+
export declare const createGroup: (group: Group) => Promise<import("bson").ObjectId>;
|
|
6
6
|
export declare const updateGroup: (filter: Filter<Group>, data: Partial<Group>) => Promise<import("mongodb").WithId<Group> | null>;
|
|
7
7
|
export declare const removeGroup: (groupId: string) => Promise<import("mongodb").DeleteResult>;
|
|
8
8
|
//# sourceMappingURL=groups.getters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groups.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/groups/groups.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,mBAAmB,QAAO,UAAU,CAAC,KAAK,CAEtD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,QAAQ,MAAM,CAAC,KAAK,CAAC,KAAG,OAAO,CAAC,KAAK,EAAE,CAEvE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"groups.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/groups/groups.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,mBAAmB,QAAO,UAAU,CAAC,KAAK,CAEtD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,QAAQ,MAAM,CAAC,KAAK,CAAC,KAAG,OAAO,CAAC,KAAK,EAAE,CAEvE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,OAAO,KAAK,qCAG7C,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,QAAQ,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,oDAM5E,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,SAAS,MAAM,4CAEhD,CAAC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { Collection } from 'mongodb';
|
|
2
|
-
import
|
|
2
|
+
import { Client } from '../index';
|
|
3
|
+
import { PhoneNumber, PhoneNumberWithFlow } from './phone_numbers.types';
|
|
3
4
|
export declare const getPhoneNumbersCollection: () => Collection<PhoneNumber>;
|
|
4
5
|
export declare const getPhoneDataByPhoneNumber: (phoneNumber: string) => Promise<PhoneNumberWithFlow | null>;
|
|
6
|
+
export declare const getClientPrimaryPhoneNumber: (clientId: string) => Promise<string | null>;
|
|
5
7
|
export declare const getClientPhoneNumber: (clientId: string) => Promise<string | null>;
|
|
6
|
-
export declare const getClientPhoneData: (clientId: string) => Promise<PhoneNumber | null>;
|
|
7
|
-
export declare const createPhoneNumberEntity: (phoneNumber: string, flowId: string, clientId: string
|
|
8
|
+
export declare const getClientPhoneData: (clientId: string, isPrimary?: boolean) => Promise<PhoneNumber | null>;
|
|
9
|
+
export declare const createPhoneNumberEntity: (phoneNumber: string, flowId: string, clientId: string) => Promise<PhoneNumber>;
|
|
10
|
+
export declare const findClientByPhoneNumber: (phoneNumber: string) => Promise<Client>;
|
|
8
11
|
//# sourceMappingURL=phone_numbers.getter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phone_numbers.getter.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/phone_numbers/phone_numbers.getter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"phone_numbers.getter.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/phone_numbers/phone_numbers.getter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EACL,MAAM,EAMP,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEzE,eAAO,MAAM,yBAAyB,QAAO,UAAU,CAAC,WAAW,CACjB,CAAC;AAEnD,eAAO,MAAM,yBAAyB,GACpC,aAAa,MAAM,KAClB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAapC,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAKzF,CAAC;AAEF,eAAO,MAAM,oBAAoB,aAP2B,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAO3B,CAAC;AAEhE,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,EAChB,YAAY,OAAO,KAClB,OAAO,CAAC,WAAW,GAAG,IAAI,CAI5B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,aAAa,MAAM,EACnB,QAAQ,MAAM,EACd,UAAU,MAAM,KACf,OAAO,CAAC,WAAW,CAerB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,MAAM,CAOjF,CAAC"}
|
|
@@ -1,32 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createPhoneNumberEntity = exports.getClientPhoneData = exports.getClientPhoneNumber = exports.getPhoneDataByPhoneNumber = exports.getPhoneNumbersCollection = void 0;
|
|
3
|
+
exports.findClientByPhoneNumber = exports.createPhoneNumberEntity = exports.getClientPhoneData = exports.getClientPhoneNumber = exports.getClientPrimaryPhoneNumber = exports.getPhoneDataByPhoneNumber = exports.getPhoneNumbersCollection = void 0;
|
|
4
4
|
const index_1 = require("../index");
|
|
5
|
-
const flows_getter_1 = require("../flows/flows.getter");
|
|
6
5
|
const getPhoneNumbersCollection = () => (0, index_1.getDb)().collection('phone_numbers');
|
|
7
6
|
exports.getPhoneNumbersCollection = getPhoneNumbersCollection;
|
|
8
7
|
const getPhoneDataByPhoneNumber = async (phoneNumber) => {
|
|
9
|
-
const
|
|
10
|
-
if (!
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
const phoneCallData = await (0, exports.getPhoneNumbersCollection)().findOne({ phone_number: phoneNumber });
|
|
9
|
+
if (!phoneCallData) {
|
|
10
|
+
throw new Error('PhoneNumber not found');
|
|
11
|
+
}
|
|
12
|
+
const flow = await (0, index_1.getFlowsCollection)().findOne({ _id: new index_1.ObjectId(phoneCallData.flow_id) });
|
|
13
|
+
if (!flow) {
|
|
14
|
+
throw new Error('Flow not found');
|
|
15
|
+
}
|
|
16
|
+
const [subscription] = (await (0, index_1.findSubscriptions)({ clientId: phoneCallData.client_id, isActive: true })) || [];
|
|
17
|
+
return { ...phoneCallData, flow, subscriptionId: subscription?._id?.toString() ?? undefined };
|
|
16
18
|
};
|
|
17
19
|
exports.getPhoneDataByPhoneNumber = getPhoneDataByPhoneNumber;
|
|
18
|
-
const
|
|
19
|
-
return (await (0, exports.getPhoneNumbersCollection)().findOne({ client_id: clientId }))
|
|
20
|
+
const getClientPrimaryPhoneNumber = async (clientId) => {
|
|
21
|
+
return ((await (0, exports.getPhoneNumbersCollection)().findOne({ client_id: clientId, is_primary: true }))
|
|
22
|
+
?.phone_number ?? null);
|
|
20
23
|
};
|
|
21
|
-
exports.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
return
|
|
24
|
+
exports.getClientPrimaryPhoneNumber = getClientPrimaryPhoneNumber;
|
|
25
|
+
exports.getClientPhoneNumber = exports.getClientPrimaryPhoneNumber;
|
|
26
|
+
const getClientPhoneData = async (clientId, isPrimary) => {
|
|
27
|
+
const filter = { client_id: clientId, is_primary: isPrimary !== false };
|
|
28
|
+
const options = isPrimary === false ? { sort: { createdAt: -1 } } : {};
|
|
29
|
+
return (0, exports.getPhoneNumbersCollection)().findOne(filter, options);
|
|
27
30
|
};
|
|
28
31
|
exports.getClientPhoneData = getClientPhoneData;
|
|
29
|
-
const createPhoneNumberEntity = async (phoneNumber, flowId, clientId
|
|
32
|
+
const createPhoneNumberEntity = async (phoneNumber, flowId, clientId) => {
|
|
33
|
+
const existing = await (0, exports.getClientPhoneData)(clientId);
|
|
34
|
+
const isPrimary = !existing;
|
|
30
35
|
await (0, exports.getPhoneNumbersCollection)().insertOne({
|
|
31
36
|
phone_number: phoneNumber,
|
|
32
37
|
flow_id: new index_1.ObjectId(flowId),
|
|
@@ -35,10 +40,21 @@ const createPhoneNumberEntity = async (phoneNumber, flowId, clientId, isPrimary
|
|
|
35
40
|
createdAt: new Date(),
|
|
36
41
|
updatedAt: new Date(),
|
|
37
42
|
});
|
|
38
|
-
const phoneNumberData = await (0, exports.getClientPhoneData)(clientId);
|
|
43
|
+
const phoneNumberData = await (0, exports.getClientPhoneData)(clientId, isPrimary);
|
|
39
44
|
if (!phoneNumberData)
|
|
40
45
|
throw new Error('Failed to create phoneNumber');
|
|
41
46
|
return phoneNumberData;
|
|
42
47
|
};
|
|
43
48
|
exports.createPhoneNumberEntity = createPhoneNumberEntity;
|
|
49
|
+
const findClientByPhoneNumber = async (phoneNumber) => {
|
|
50
|
+
const phoneData = await (0, exports.getPhoneNumbersCollection)().findOne({ phone_number: phoneNumber });
|
|
51
|
+
if (!phoneData)
|
|
52
|
+
throw new Error('Failed to get phone data');
|
|
53
|
+
const clientId = phoneData.client_id;
|
|
54
|
+
const client = await (0, index_1.getClientsCollection)().findOne({ clientId });
|
|
55
|
+
if (!client)
|
|
56
|
+
throw new Error('Failed to get client');
|
|
57
|
+
return client;
|
|
58
|
+
};
|
|
59
|
+
exports.findClientByPhoneNumber = findClientByPhoneNumber;
|
|
44
60
|
//# sourceMappingURL=phone_numbers.getter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phone_numbers.getter.js","sourceRoot":"","sources":["../../../src/talkpilot/phone_numbers/phone_numbers.getter.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"phone_numbers.getter.js","sourceRoot":"","sources":["../../../src/talkpilot/phone_numbers/phone_numbers.getter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { Plan, PlanDoc, PlanFilter, PlanQueryOptions } from '../index';
|
|
2
|
-
import { ObjectId } from 'mongodb';
|
|
2
|
+
import { Filter, ObjectId } from 'mongodb';
|
|
3
3
|
export declare const getPlansCollection: () => import("mongodb").Collection<Plan>;
|
|
4
4
|
/**
|
|
5
5
|
* Generic function to find plans with flexible filtering
|
|
6
6
|
*/
|
|
7
7
|
export declare const findPlans: (filter?: PlanFilter, options?: PlanQueryOptions) => Promise<PlanDoc[]>;
|
|
8
|
+
export declare const findPlansByQuery: (query: Filter<Plan>, options?: PlanQueryOptions) => Promise<PlanDoc[]>;
|
|
9
|
+
export declare const countPlans: (query: Filter<Plan>) => Promise<number>;
|
|
8
10
|
export declare const createPlanDoc: (planData: Omit<Plan, "createdAt" | "updatedAt">) => Promise<PlanDoc>;
|
|
9
|
-
export declare const updatePlanDoc: (planId: ObjectId, updates: Partial<
|
|
11
|
+
export declare const updatePlanDoc: (planId: ObjectId, updates: Partial<Omit<Plan, "createdAt" | "updatedAt">>) => Promise<PlanDoc | null>;
|
|
10
12
|
//# sourceMappingURL=plans.getters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/plans/plans.getters.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"plans.getters.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/plans/plans.getters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAmB,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAGzC,eAAO,MAAM,kBAAkB,0CAE9B,CAAC;AAiCF;;GAEG;AACH,eAAO,MAAM,SAAS,GACpB,SAAS,UAAU,EACnB,UAAU,gBAAgB,KACzB,OAAO,CAAC,OAAO,EAAE,CAkCnB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,EACnB,UAAU,gBAAgB,KACzB,OAAO,CAAC,OAAO,EAAE,CAGnB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,OAAO,MAAM,CAAC,IAAI,CAAC,KAAG,OAAO,CAAC,MAAM,CAEpE,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,UAAU,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAAC,KAC9C,OAAO,CAAC,OAAO,CAWjB,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,QAAQ,QAAQ,EAChB,SAAS,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC,KACtD,OAAO,CAAC,OAAO,GAAG,IAAI,CAaxB,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updatePlanDoc = exports.createPlanDoc = exports.findPlans = exports.getPlansCollection = void 0;
|
|
3
|
+
exports.updatePlanDoc = exports.createPlanDoc = exports.countPlans = exports.findPlansByQuery = exports.findPlans = exports.getPlansCollection = void 0;
|
|
4
4
|
const index_1 = require("../index");
|
|
5
5
|
const mongodb_1 = require("mongodb");
|
|
6
|
+
const query_utils_1 = require("../utils/query.utils");
|
|
6
7
|
const getPlansCollection = () => {
|
|
7
8
|
return (0, index_1.getDb)().collection('plans');
|
|
8
9
|
};
|
|
@@ -65,16 +66,19 @@ const findPlans = async (filter, options) => {
|
|
|
65
66
|
query.$and = filter.and.map(buildSimpleQuery);
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
queryBuilder = queryBuilder.sort(options.sort);
|
|
71
|
-
}
|
|
72
|
-
if (options?.limit) {
|
|
73
|
-
queryBuilder = queryBuilder.limit(options.limit);
|
|
74
|
-
}
|
|
75
|
-
return await queryBuilder.toArray();
|
|
69
|
+
const cursor = (0, exports.getPlansCollection)().find(query);
|
|
70
|
+
return await (0, query_utils_1.applyQueryOptions)(cursor, options).toArray();
|
|
76
71
|
};
|
|
77
72
|
exports.findPlans = findPlans;
|
|
73
|
+
const findPlansByQuery = async (query, options) => {
|
|
74
|
+
const cursor = (0, exports.getPlansCollection)().find(query);
|
|
75
|
+
return await (0, query_utils_1.applyQueryOptions)(cursor, options).toArray();
|
|
76
|
+
};
|
|
77
|
+
exports.findPlansByQuery = findPlansByQuery;
|
|
78
|
+
const countPlans = async (query) => {
|
|
79
|
+
return (0, exports.getPlansCollection)().countDocuments(query);
|
|
80
|
+
};
|
|
81
|
+
exports.countPlans = countPlans;
|
|
78
82
|
const createPlanDoc = async (planData) => {
|
|
79
83
|
const now = new Date();
|
|
80
84
|
const result = await (0, exports.getPlansCollection)().insertOne({
|
|
@@ -89,7 +93,7 @@ const createPlanDoc = async (planData) => {
|
|
|
89
93
|
};
|
|
90
94
|
exports.createPlanDoc = createPlanDoc;
|
|
91
95
|
const updatePlanDoc = async (planId, updates) => {
|
|
92
|
-
|
|
96
|
+
return await (0, exports.getPlansCollection)().findOneAndUpdate({ _id: planId }, {
|
|
93
97
|
$set: {
|
|
94
98
|
...updates,
|
|
95
99
|
updatedAt: new Date(),
|
|
@@ -97,7 +101,6 @@ const updatePlanDoc = async (planId, updates) => {
|
|
|
97
101
|
}, {
|
|
98
102
|
returnDocument: 'after',
|
|
99
103
|
});
|
|
100
|
-
return result;
|
|
101
104
|
};
|
|
102
105
|
exports.updatePlanDoc = updatePlanDoc;
|
|
103
106
|
//# sourceMappingURL=plans.getters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.getters.js","sourceRoot":"","sources":["../../../src/talkpilot/plans/plans.getters.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"plans.getters.js","sourceRoot":"","sources":["../../../src/talkpilot/plans/plans.getters.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"results.types.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/results/results.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"results.types.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/results/results.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.getter.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/sessions/sessions.getter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,eAAO,MAAM,qBAAqB,QAAO,UAAU,CAAC,OAAO,CAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"sessions.getter.d.ts","sourceRoot":"","sources":["../../../src/talkpilot/sessions/sessions.getter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,eAAO,MAAM,qBAAqB,QAAO,UAAU,CAAC,OAAO,CAClB,CAAC;AA8B1C,eAAO,MAAM,eAAe,GAC1B,WAAW,QAAQ,EACnB,UAAU,MAAM,KACf,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAEhC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAU,MAAM,MAAM,EAAE,IAAI,MAAM,oCA2CvE,CAAC"}
|
|
@@ -5,21 +5,72 @@ const mongodb_1 = require("mongodb");
|
|
|
5
5
|
const index_1 = require("../index");
|
|
6
6
|
const getSessionsCollection = () => (0, index_1.getDb)().collection('sessions');
|
|
7
7
|
exports.getSessionsCollection = getSessionsCollection;
|
|
8
|
+
const buildPhoneCandidates = (phone) => {
|
|
9
|
+
const raw = (phone ?? '').trim();
|
|
10
|
+
if (!raw)
|
|
11
|
+
return [];
|
|
12
|
+
const noPlus = raw.startsWith('+') ? raw.slice(1) : raw;
|
|
13
|
+
const digitsOnly = raw.replace(/\D/g, '');
|
|
14
|
+
const digitsOnlyNoPlus = noPlus.replace(/\D/g, '');
|
|
15
|
+
return Array.from(new Set([raw, noPlus, digitsOnly, digitsOnlyNoPlus].filter(Boolean)));
|
|
16
|
+
};
|
|
17
|
+
const buildFlowIdCandidates = (flowId) => {
|
|
18
|
+
if (!flowId)
|
|
19
|
+
return [];
|
|
20
|
+
// Some sessions store flow_id as string, others as ObjectId.
|
|
21
|
+
if (flowId instanceof mongodb_1.ObjectId) {
|
|
22
|
+
return [flowId, flowId.toString()];
|
|
23
|
+
}
|
|
24
|
+
const asString = String(flowId);
|
|
25
|
+
if (!asString)
|
|
26
|
+
return [];
|
|
27
|
+
if (mongodb_1.ObjectId.isValid(asString)) {
|
|
28
|
+
return [new mongodb_1.ObjectId(asString), asString];
|
|
29
|
+
}
|
|
30
|
+
return [asString];
|
|
31
|
+
};
|
|
8
32
|
const findSessionById = (sessionId, clientId) => {
|
|
9
33
|
return (0, exports.getSessionsCollection)().findOne({ _id: sessionId, clientId: clientId });
|
|
10
34
|
};
|
|
11
35
|
exports.findSessionById = findSessionById;
|
|
12
36
|
const findSessionOfIncomingCall = async (from, to) => {
|
|
13
|
-
const
|
|
37
|
+
const toCandidates = buildPhoneCandidates(to);
|
|
38
|
+
const fromCandidates = buildPhoneCandidates(from);
|
|
39
|
+
const receiverPhoneData = await (0, index_1.getPhoneNumbersCollection)().findOne({
|
|
40
|
+
phone_number: { $in: toCandidates },
|
|
41
|
+
});
|
|
14
42
|
if (!receiverPhoneData) {
|
|
15
43
|
return null;
|
|
16
44
|
}
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
45
|
+
const flowIdCandidates = buildFlowIdCandidates(receiverPhoneData.flow_id);
|
|
46
|
+
const [session] = await (0, exports.getSessionsCollection)()
|
|
47
|
+
.aggregate([
|
|
48
|
+
{
|
|
49
|
+
$match: {
|
|
50
|
+
flow_id: { $in: flowIdCandidates },
|
|
51
|
+
phone_numbers: {
|
|
52
|
+
$elemMatch: { phoneNumber: { $in: fromCandidates } },
|
|
53
|
+
},
|
|
54
|
+
},
|
|
21
55
|
},
|
|
22
|
-
|
|
56
|
+
{
|
|
57
|
+
$addFields: {
|
|
58
|
+
phone_numbers: {
|
|
59
|
+
$filter: {
|
|
60
|
+
input: '$phone_numbers',
|
|
61
|
+
as: 'pn',
|
|
62
|
+
cond: { $in: ['$$pn.phoneNumber', fromCandidates] },
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
{ $limit: 1 },
|
|
68
|
+
])
|
|
69
|
+
.toArray();
|
|
70
|
+
if (!session) {
|
|
71
|
+
console.info('No session found for incoming call');
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
23
74
|
return session;
|
|
24
75
|
};
|
|
25
76
|
exports.findSessionOfIncomingCall = findSessionOfIncomingCall;
|