@blazeo.com/calendar-client 1.0.49 → 1.0.52
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.d.ts +22 -6
- package/dist/index.js +41 -10
- package/dist/index.mjs +41 -10
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -112,8 +112,8 @@ export type LeadCompanyResult = {
|
|
|
112
112
|
};
|
|
113
113
|
|
|
114
114
|
export const EventModel: {
|
|
115
|
-
get(eventId: string): Promise<unknown>;
|
|
116
|
-
getByExternalId(externalEventId: string): Promise<unknown>;
|
|
115
|
+
get(eventId: string, opts?: { offset?: number }): Promise<unknown>;
|
|
116
|
+
getByExternalId(externalEventId: string, opts?: { offset?: number }): Promise<unknown>;
|
|
117
117
|
getByDateRangeWithFilters(
|
|
118
118
|
companyKey: string,
|
|
119
119
|
startDateFrom: string,
|
|
@@ -225,6 +225,13 @@ export type PhoneNumberPurchaseResult = {
|
|
|
225
225
|
Success?: boolean;
|
|
226
226
|
};
|
|
227
227
|
|
|
228
|
+
export type PhoneNumberReleaseData = {
|
|
229
|
+
company_key?: string;
|
|
230
|
+
phone_number?: string;
|
|
231
|
+
released_from_twilio?: boolean;
|
|
232
|
+
cleared_local_state?: boolean;
|
|
233
|
+
};
|
|
234
|
+
|
|
228
235
|
export const CompanyModel: {
|
|
229
236
|
get(companyKey: string): Promise<unknown>;
|
|
230
237
|
getAll(): Promise<unknown[] | null>;
|
|
@@ -234,6 +241,11 @@ export const CompanyModel: {
|
|
|
234
241
|
data?: PhoneNumberPurchaseResult;
|
|
235
242
|
message?: string;
|
|
236
243
|
}>;
|
|
244
|
+
releasePhoneNumber(companyKey: string, phoneNumber?: string): Promise<{
|
|
245
|
+
status: string;
|
|
246
|
+
data?: PhoneNumberReleaseData;
|
|
247
|
+
message?: string;
|
|
248
|
+
}>;
|
|
237
249
|
create(snapshot: object, options?: { env?: object }): unknown;
|
|
238
250
|
};
|
|
239
251
|
export const AssetModel: {
|
|
@@ -338,26 +350,30 @@ export const LeadModel: {
|
|
|
338
350
|
data?: { userId?: string; columns?: string[]; isDefault?: boolean };
|
|
339
351
|
message?: string;
|
|
340
352
|
}>;
|
|
341
|
-
/** Requires companyKey and at least one of email or phone. */
|
|
353
|
+
/** Requires firstName/name, leadType, companyKey and at least one of email or phone. */
|
|
342
354
|
createLead(payload: {
|
|
343
355
|
companyKey: string;
|
|
344
356
|
email?: string;
|
|
345
357
|
phone?: string;
|
|
346
358
|
name?: string;
|
|
359
|
+
firstName?: string;
|
|
360
|
+
first_name?: string;
|
|
347
361
|
source?: string;
|
|
348
|
-
leadType
|
|
362
|
+
leadType: 'sales' | 'service' | 'others' | number;
|
|
349
363
|
referrerLink?: string;
|
|
350
364
|
description?: string;
|
|
351
365
|
}): Promise<{ status: string; data?: unknown; message?: string } | null>;
|
|
352
|
-
/** Requires leadId; when email or phone is included, at least one must be non-empty. */
|
|
366
|
+
/** Requires leadId, firstName/name and leadType; when email or phone is included, at least one must be non-empty. */
|
|
353
367
|
updateLead(payload: {
|
|
354
368
|
leadId: string;
|
|
355
369
|
email?: string;
|
|
356
370
|
companyKey?: string;
|
|
357
371
|
name?: string;
|
|
372
|
+
firstName?: string;
|
|
373
|
+
first_name?: string;
|
|
358
374
|
phone?: string;
|
|
359
375
|
source?: string;
|
|
360
|
-
leadType
|
|
376
|
+
leadType: 'sales' | 'service' | 'others' | number;
|
|
361
377
|
referrerLink?: string;
|
|
362
378
|
description?: string;
|
|
363
379
|
}): Promise<unknown>;
|
package/dist/index.js
CHANGED
|
@@ -521,13 +521,14 @@ var EventModel = import_mobx_state_tree4.types.model("Event", {
|
|
|
521
521
|
return {
|
|
522
522
|
/** GET /event/get – fetch this event by eventId or externalEventId */
|
|
523
523
|
async get(params) {
|
|
524
|
+
const offset = (params == null ? void 0 : params.offset) ?? getOffset();
|
|
524
525
|
if ((params == null ? void 0 : params.eventId) ?? (params == null ? void 0 : params.event_id)) {
|
|
525
|
-
const res = await reqGet("/event/get", { event_id: params.eventId ?? params.event_id });
|
|
526
|
+
const res = await reqGet("/event/get", { event_id: params.eventId ?? params.event_id }, { headers: { offset: String(offset) } });
|
|
526
527
|
if (res.status === "success" && res.data) (0, import_mobx_state_tree4.applySnapshot)(self, { ...res.data, eventId: self.eventId });
|
|
527
528
|
return res;
|
|
528
529
|
}
|
|
529
530
|
if ((params == null ? void 0 : params.externalEventId) ?? (params == null ? void 0 : params.externalevent_id)) {
|
|
530
|
-
const res = await reqGet("/event/get", { externalevent_id: params.externalEventId ?? params.externalevent_id });
|
|
531
|
+
const res = await reqGet("/event/get", { externalevent_id: params.externalEventId ?? params.externalevent_id }, { headers: { offset: String(offset) } });
|
|
531
532
|
if (res.status === "success" && res.data) (0, import_mobx_state_tree4.applySnapshot)(self, { ...res.data, eventId: self.eventId });
|
|
532
533
|
return res;
|
|
533
534
|
}
|
|
@@ -704,17 +705,19 @@ function mapEventFromApi(d) {
|
|
|
704
705
|
modifiedOn: pick2("modifiedOn", "ModifiedOn", "modified_on")
|
|
705
706
|
};
|
|
706
707
|
}
|
|
707
|
-
EventModel.get = async (eventId) => {
|
|
708
|
+
EventModel.get = async (eventId, opts = {}) => {
|
|
708
709
|
const { reqGet } = createRequestHelpersFromEnv(getConfig());
|
|
709
|
-
const
|
|
710
|
+
const offset = opts.offset ?? getDefaultOffset();
|
|
711
|
+
const res = await reqGet("/event/get", { event_id: eventId }, { headers: { offset: String(offset) } });
|
|
710
712
|
if (res.status === "success" && res.data) {
|
|
711
713
|
return EventModel.create(mapEventFromApi(res.data), { env: getConfig() });
|
|
712
714
|
}
|
|
713
715
|
return null;
|
|
714
716
|
};
|
|
715
|
-
EventModel.getByExternalId = async (externalEventId) => {
|
|
717
|
+
EventModel.getByExternalId = async (externalEventId, opts = {}) => {
|
|
716
718
|
const { reqGet } = createRequestHelpersFromEnv(getConfig());
|
|
717
|
-
const
|
|
719
|
+
const offset = opts.offset ?? getDefaultOffset();
|
|
720
|
+
const res = await reqGet("/event/get", { externalevent_id: externalEventId }, { headers: { offset: String(offset) } });
|
|
718
721
|
if (res.status === "success" && res.data) {
|
|
719
722
|
return EventModel.create(mapEventFromApi(res.data), { env: getConfig() });
|
|
720
723
|
}
|
|
@@ -2034,6 +2037,12 @@ CompanyModel.purchasePhoneNumber = async (companyKey, companyId) => {
|
|
|
2034
2037
|
const { reqGet } = createRequestHelpersFromEnv(getConfig());
|
|
2035
2038
|
return reqGet("/Company/PhoneNumber/Purchase", { company_key: companyKey, company_id: companyId });
|
|
2036
2039
|
};
|
|
2040
|
+
CompanyModel.releasePhoneNumber = async (companyKey, phoneNumber) => {
|
|
2041
|
+
const { reqGet } = createRequestHelpersFromEnv(getConfig());
|
|
2042
|
+
const query = { company_key: companyKey };
|
|
2043
|
+
if (phoneNumber) query.phone_number = phoneNumber;
|
|
2044
|
+
return reqGet("/Company/PhoneNumber/Release", query);
|
|
2045
|
+
};
|
|
2037
2046
|
var Company_default = CompanyModel;
|
|
2038
2047
|
|
|
2039
2048
|
// src/models/appointment/Asset.js
|
|
@@ -2575,9 +2584,24 @@ function pickLeadCreateContact(payload) {
|
|
|
2575
2584
|
const companyKey = String(p.companyKey ?? p.company_key ?? p.CompanyKey ?? "").trim();
|
|
2576
2585
|
return { email, phone, companyKey };
|
|
2577
2586
|
}
|
|
2587
|
+
function pickLeadRequiredFields(payload) {
|
|
2588
|
+
const p = payload ?? {};
|
|
2589
|
+
const firstName = String(
|
|
2590
|
+
p.firstName ?? p.first_name ?? p.name ?? p.Name ?? ""
|
|
2591
|
+
).trim();
|
|
2592
|
+
const leadType = p.leadType ?? p.lead_type ?? p.LeadType ?? null;
|
|
2593
|
+
return { firstName, leadType };
|
|
2594
|
+
}
|
|
2595
|
+
function hasLeadTypeValue(leadType) {
|
|
2596
|
+
if (leadType == null) return false;
|
|
2597
|
+
return !(typeof leadType === "string" && leadType.trim() === "");
|
|
2598
|
+
}
|
|
2578
2599
|
function validateLeadCreatePayload(payload) {
|
|
2579
2600
|
const { email, phone, companyKey } = pickLeadCreateContact(payload);
|
|
2601
|
+
const { firstName, leadType } = pickLeadRequiredFields(payload);
|
|
2580
2602
|
if (!companyKey) return { ok: false, message: "companyKey is required" };
|
|
2603
|
+
if (!firstName) return { ok: false, message: "First name is mandatory" };
|
|
2604
|
+
if (!hasLeadTypeValue(leadType)) return { ok: false, message: "Lead type is mandatory" };
|
|
2581
2605
|
if (!email && !phone) return { ok: false, message: "email or phone is required" };
|
|
2582
2606
|
return { ok: true };
|
|
2583
2607
|
}
|
|
@@ -2585,6 +2609,9 @@ function validateLeadUpdatePayload(payload) {
|
|
|
2585
2609
|
const p = payload ?? {};
|
|
2586
2610
|
const leadId = String(p.leadId ?? p.lead_id ?? p.LeadId ?? "").trim();
|
|
2587
2611
|
if (!leadId) return { ok: false, message: "leadId required" };
|
|
2612
|
+
const { firstName, leadType } = pickLeadRequiredFields(payload);
|
|
2613
|
+
if (!firstName) return { ok: false, message: "First name is mandatory" };
|
|
2614
|
+
if (!hasLeadTypeValue(leadType)) return { ok: false, message: "Lead type is mandatory" };
|
|
2588
2615
|
const hasEmailKey = "email" in p || "Email" in p;
|
|
2589
2616
|
const hasPhoneKey = "phone" in p || "Phone" in p;
|
|
2590
2617
|
if (hasEmailKey || hasPhoneKey) {
|
|
@@ -2682,12 +2709,14 @@ var LeadModel = import_mobx_state_tree20.types.model("Lead", {
|
|
|
2682
2709
|
async getColumnSelection(userId) {
|
|
2683
2710
|
return LeadModel.getColumnSelection(userId);
|
|
2684
2711
|
},
|
|
2685
|
-
/** POST /lead/create – create this lead (requires companyKey and email
|
|
2712
|
+
/** POST /lead/create – create this lead (requires firstName, leadType, companyKey and email/phone) */
|
|
2686
2713
|
async createLead() {
|
|
2687
2714
|
const validation = validateLeadCreatePayload({
|
|
2688
2715
|
email: self.email,
|
|
2689
2716
|
phone: self.phone,
|
|
2690
|
-
companyKey: self.companyKey
|
|
2717
|
+
companyKey: self.companyKey,
|
|
2718
|
+
firstName: self.name,
|
|
2719
|
+
leadType: self.leadType
|
|
2691
2720
|
});
|
|
2692
2721
|
if (!validation.ok) return { status: "failure", message: validation.message };
|
|
2693
2722
|
const payload = {
|
|
@@ -2706,7 +2735,7 @@ var LeadModel = import_mobx_state_tree20.types.model("Lead", {
|
|
|
2706
2735
|
}
|
|
2707
2736
|
return res;
|
|
2708
2737
|
},
|
|
2709
|
-
/** POST /lead/update – update this lead (requires
|
|
2738
|
+
/** POST /lead/update – update this lead (requires firstName and leadType) */
|
|
2710
2739
|
async updateLead() {
|
|
2711
2740
|
if (!self.leadId || self.leadId === "new") {
|
|
2712
2741
|
return { status: "failure", message: "leadId required" };
|
|
@@ -2714,7 +2743,9 @@ var LeadModel = import_mobx_state_tree20.types.model("Lead", {
|
|
|
2714
2743
|
const validation = validateLeadUpdatePayload({
|
|
2715
2744
|
leadId: self.leadId,
|
|
2716
2745
|
email: self.email,
|
|
2717
|
-
phone: self.phone
|
|
2746
|
+
phone: self.phone,
|
|
2747
|
+
firstName: self.name,
|
|
2748
|
+
leadType: self.leadType
|
|
2718
2749
|
});
|
|
2719
2750
|
if (!validation.ok) return { status: "failure", message: validation.message };
|
|
2720
2751
|
const payload = {
|
package/dist/index.mjs
CHANGED
|
@@ -446,13 +446,14 @@ var EventModel = types4.model("Event", {
|
|
|
446
446
|
return {
|
|
447
447
|
/** GET /event/get – fetch this event by eventId or externalEventId */
|
|
448
448
|
async get(params) {
|
|
449
|
+
const offset = (params == null ? void 0 : params.offset) ?? getOffset();
|
|
449
450
|
if ((params == null ? void 0 : params.eventId) ?? (params == null ? void 0 : params.event_id)) {
|
|
450
|
-
const res = await reqGet("/event/get", { event_id: params.eventId ?? params.event_id });
|
|
451
|
+
const res = await reqGet("/event/get", { event_id: params.eventId ?? params.event_id }, { headers: { offset: String(offset) } });
|
|
451
452
|
if (res.status === "success" && res.data) applySnapshot(self, { ...res.data, eventId: self.eventId });
|
|
452
453
|
return res;
|
|
453
454
|
}
|
|
454
455
|
if ((params == null ? void 0 : params.externalEventId) ?? (params == null ? void 0 : params.externalevent_id)) {
|
|
455
|
-
const res = await reqGet("/event/get", { externalevent_id: params.externalEventId ?? params.externalevent_id });
|
|
456
|
+
const res = await reqGet("/event/get", { externalevent_id: params.externalEventId ?? params.externalevent_id }, { headers: { offset: String(offset) } });
|
|
456
457
|
if (res.status === "success" && res.data) applySnapshot(self, { ...res.data, eventId: self.eventId });
|
|
457
458
|
return res;
|
|
458
459
|
}
|
|
@@ -629,17 +630,19 @@ function mapEventFromApi(d) {
|
|
|
629
630
|
modifiedOn: pick2("modifiedOn", "ModifiedOn", "modified_on")
|
|
630
631
|
};
|
|
631
632
|
}
|
|
632
|
-
EventModel.get = async (eventId) => {
|
|
633
|
+
EventModel.get = async (eventId, opts = {}) => {
|
|
633
634
|
const { reqGet } = createRequestHelpersFromEnv(getConfig());
|
|
634
|
-
const
|
|
635
|
+
const offset = opts.offset ?? getDefaultOffset();
|
|
636
|
+
const res = await reqGet("/event/get", { event_id: eventId }, { headers: { offset: String(offset) } });
|
|
635
637
|
if (res.status === "success" && res.data) {
|
|
636
638
|
return EventModel.create(mapEventFromApi(res.data), { env: getConfig() });
|
|
637
639
|
}
|
|
638
640
|
return null;
|
|
639
641
|
};
|
|
640
|
-
EventModel.getByExternalId = async (externalEventId) => {
|
|
642
|
+
EventModel.getByExternalId = async (externalEventId, opts = {}) => {
|
|
641
643
|
const { reqGet } = createRequestHelpersFromEnv(getConfig());
|
|
642
|
-
const
|
|
644
|
+
const offset = opts.offset ?? getDefaultOffset();
|
|
645
|
+
const res = await reqGet("/event/get", { externalevent_id: externalEventId }, { headers: { offset: String(offset) } });
|
|
643
646
|
if (res.status === "success" && res.data) {
|
|
644
647
|
return EventModel.create(mapEventFromApi(res.data), { env: getConfig() });
|
|
645
648
|
}
|
|
@@ -1959,6 +1962,12 @@ CompanyModel.purchasePhoneNumber = async (companyKey, companyId) => {
|
|
|
1959
1962
|
const { reqGet } = createRequestHelpersFromEnv(getConfig());
|
|
1960
1963
|
return reqGet("/Company/PhoneNumber/Purchase", { company_key: companyKey, company_id: companyId });
|
|
1961
1964
|
};
|
|
1965
|
+
CompanyModel.releasePhoneNumber = async (companyKey, phoneNumber) => {
|
|
1966
|
+
const { reqGet } = createRequestHelpersFromEnv(getConfig());
|
|
1967
|
+
const query = { company_key: companyKey };
|
|
1968
|
+
if (phoneNumber) query.phone_number = phoneNumber;
|
|
1969
|
+
return reqGet("/Company/PhoneNumber/Release", query);
|
|
1970
|
+
};
|
|
1962
1971
|
var Company_default = CompanyModel;
|
|
1963
1972
|
|
|
1964
1973
|
// src/models/appointment/Asset.js
|
|
@@ -2500,9 +2509,24 @@ function pickLeadCreateContact(payload) {
|
|
|
2500
2509
|
const companyKey = String(p.companyKey ?? p.company_key ?? p.CompanyKey ?? "").trim();
|
|
2501
2510
|
return { email, phone, companyKey };
|
|
2502
2511
|
}
|
|
2512
|
+
function pickLeadRequiredFields(payload) {
|
|
2513
|
+
const p = payload ?? {};
|
|
2514
|
+
const firstName = String(
|
|
2515
|
+
p.firstName ?? p.first_name ?? p.name ?? p.Name ?? ""
|
|
2516
|
+
).trim();
|
|
2517
|
+
const leadType = p.leadType ?? p.lead_type ?? p.LeadType ?? null;
|
|
2518
|
+
return { firstName, leadType };
|
|
2519
|
+
}
|
|
2520
|
+
function hasLeadTypeValue(leadType) {
|
|
2521
|
+
if (leadType == null) return false;
|
|
2522
|
+
return !(typeof leadType === "string" && leadType.trim() === "");
|
|
2523
|
+
}
|
|
2503
2524
|
function validateLeadCreatePayload(payload) {
|
|
2504
2525
|
const { email, phone, companyKey } = pickLeadCreateContact(payload);
|
|
2526
|
+
const { firstName, leadType } = pickLeadRequiredFields(payload);
|
|
2505
2527
|
if (!companyKey) return { ok: false, message: "companyKey is required" };
|
|
2528
|
+
if (!firstName) return { ok: false, message: "First name is mandatory" };
|
|
2529
|
+
if (!hasLeadTypeValue(leadType)) return { ok: false, message: "Lead type is mandatory" };
|
|
2506
2530
|
if (!email && !phone) return { ok: false, message: "email or phone is required" };
|
|
2507
2531
|
return { ok: true };
|
|
2508
2532
|
}
|
|
@@ -2510,6 +2534,9 @@ function validateLeadUpdatePayload(payload) {
|
|
|
2510
2534
|
const p = payload ?? {};
|
|
2511
2535
|
const leadId = String(p.leadId ?? p.lead_id ?? p.LeadId ?? "").trim();
|
|
2512
2536
|
if (!leadId) return { ok: false, message: "leadId required" };
|
|
2537
|
+
const { firstName, leadType } = pickLeadRequiredFields(payload);
|
|
2538
|
+
if (!firstName) return { ok: false, message: "First name is mandatory" };
|
|
2539
|
+
if (!hasLeadTypeValue(leadType)) return { ok: false, message: "Lead type is mandatory" };
|
|
2513
2540
|
const hasEmailKey = "email" in p || "Email" in p;
|
|
2514
2541
|
const hasPhoneKey = "phone" in p || "Phone" in p;
|
|
2515
2542
|
if (hasEmailKey || hasPhoneKey) {
|
|
@@ -2607,12 +2634,14 @@ var LeadModel = types20.model("Lead", {
|
|
|
2607
2634
|
async getColumnSelection(userId) {
|
|
2608
2635
|
return LeadModel.getColumnSelection(userId);
|
|
2609
2636
|
},
|
|
2610
|
-
/** POST /lead/create – create this lead (requires companyKey and email
|
|
2637
|
+
/** POST /lead/create – create this lead (requires firstName, leadType, companyKey and email/phone) */
|
|
2611
2638
|
async createLead() {
|
|
2612
2639
|
const validation = validateLeadCreatePayload({
|
|
2613
2640
|
email: self.email,
|
|
2614
2641
|
phone: self.phone,
|
|
2615
|
-
companyKey: self.companyKey
|
|
2642
|
+
companyKey: self.companyKey,
|
|
2643
|
+
firstName: self.name,
|
|
2644
|
+
leadType: self.leadType
|
|
2616
2645
|
});
|
|
2617
2646
|
if (!validation.ok) return { status: "failure", message: validation.message };
|
|
2618
2647
|
const payload = {
|
|
@@ -2631,7 +2660,7 @@ var LeadModel = types20.model("Lead", {
|
|
|
2631
2660
|
}
|
|
2632
2661
|
return res;
|
|
2633
2662
|
},
|
|
2634
|
-
/** POST /lead/update – update this lead (requires
|
|
2663
|
+
/** POST /lead/update – update this lead (requires firstName and leadType) */
|
|
2635
2664
|
async updateLead() {
|
|
2636
2665
|
if (!self.leadId || self.leadId === "new") {
|
|
2637
2666
|
return { status: "failure", message: "leadId required" };
|
|
@@ -2639,7 +2668,9 @@ var LeadModel = types20.model("Lead", {
|
|
|
2639
2668
|
const validation = validateLeadUpdatePayload({
|
|
2640
2669
|
leadId: self.leadId,
|
|
2641
2670
|
email: self.email,
|
|
2642
|
-
phone: self.phone
|
|
2671
|
+
phone: self.phone,
|
|
2672
|
+
firstName: self.name,
|
|
2673
|
+
leadType: self.leadType
|
|
2643
2674
|
});
|
|
2644
2675
|
if (!validation.ok) return { status: "failure", message: validation.message };
|
|
2645
2676
|
const payload = {
|