@dereekb/zoho 12.1.12 → 12.1.13

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/index.cjs.js CHANGED
@@ -1741,40 +1741,6 @@ $$2({ target: 'Iterator', proto: true, real: true }, {
1741
1741
  }
1742
1742
  });
1743
1743
 
1744
- var call$2 = functionCall;
1745
- var aCallable$1 = aCallable$7;
1746
- var anObject$2 = anObject$e;
1747
- var getIteratorDirect$2 = getIteratorDirect$5;
1748
- var createIteratorProxy$1 = iteratorCreateProxy;
1749
- var callWithSafeIterationClosing = callWithSafeIterationClosing$2;
1750
-
1751
- var IteratorProxy$1 = createIteratorProxy$1(function () {
1752
- var iterator = this.iterator;
1753
- var result = anObject$2(call$2(this.next, iterator));
1754
- var done = this.done = !!result.done;
1755
- if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);
1756
- });
1757
-
1758
- // `Iterator.prototype.map` method
1759
- // https://github.com/tc39/proposal-iterator-helpers
1760
- var iteratorMap = function map(mapper) {
1761
- anObject$2(this);
1762
- aCallable$1(mapper);
1763
- return new IteratorProxy$1(getIteratorDirect$2(this), {
1764
- mapper: mapper
1765
- });
1766
- };
1767
-
1768
- var $$1 = _export;
1769
- var map = iteratorMap;
1770
- var IS_PURE$1 = isPure;
1771
-
1772
- // `Iterator.prototype.map` method
1773
- // https://github.com/tc39/proposal-iterator-helpers
1774
- $$1({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$1 }, {
1775
- map: map
1776
- });
1777
-
1778
1744
  /**
1779
1745
  * Returns an empty ZohoPageResult that is typed to R and has no more records/results.
1780
1746
  */
@@ -1828,40 +1794,61 @@ function zohoRecruitConfigApiUrl(input) {
1828
1794
  }
1829
1795
  }
1830
1796
 
1831
- var call$1 = functionCall;
1832
- var anObject$1 = anObject$e;
1833
- var getIteratorDirect$1 = getIteratorDirect$5;
1797
+ /**
1798
+ * Candidates module name
1799
+ */
1800
+ const ZOHO_RECRUIT_CANDIDATES_MODULE = 'Candidates';
1801
+ /**
1802
+ * Job Openings module name
1803
+ */
1804
+ const ZOHO_RECRUIT_JOB_OPENINGS_MODULE = 'Job_Openings';
1805
+ /**
1806
+ * Notes module name
1807
+ */
1808
+ const ZOHO_RECRUIT_NOTES_MODULE = 'Notes';
1809
+ /**
1810
+ * Emails module name
1811
+ */
1812
+ const ZOHO_RECRUIT_EMAILS_MODULE = 'Emails';
1813
+ /**
1814
+ * Returns true if it is a valid ZohoRecruitValidUrl.
1815
+ */
1816
+ const isZohoRecruitValidUrl = util.isStandardInternetAccessibleWebsiteUrl;
1817
+
1818
+ var call$2 = functionCall;
1819
+ var anObject$2 = anObject$e;
1820
+ var getIteratorDirect$2 = getIteratorDirect$5;
1834
1821
  var getIteratorMethod = getIteratorMethod$3;
1835
1822
 
1836
1823
  var getIteratorFlattenable$1 = function (obj, stringHandling) {
1837
- if (!stringHandling || typeof obj !== 'string') anObject$1(obj);
1824
+ if (!stringHandling || typeof obj !== 'string') anObject$2(obj);
1838
1825
  var method = getIteratorMethod(obj);
1839
- return getIteratorDirect$1(anObject$1(method !== undefined ? call$1(method, obj) : obj));
1826
+ return getIteratorDirect$2(anObject$2(method !== undefined ? call$2(method, obj) : obj));
1840
1827
  };
1841
1828
 
1842
- var $ = _export;
1843
- var call = functionCall;
1844
- var aCallable = aCallable$7;
1845
- var anObject = anObject$e;
1846
- var getIteratorDirect = getIteratorDirect$5;
1829
+ var $$1 = _export;
1830
+ var call$1 = functionCall;
1831
+ var aCallable$1 = aCallable$7;
1832
+ var anObject$1 = anObject$e;
1833
+ var getIteratorDirect$1 = getIteratorDirect$5;
1847
1834
  var getIteratorFlattenable = getIteratorFlattenable$1;
1848
- var createIteratorProxy = iteratorCreateProxy;
1835
+ var createIteratorProxy$1 = iteratorCreateProxy;
1849
1836
  var iteratorClose = iteratorClose$4;
1850
- var IS_PURE = isPure;
1837
+ var IS_PURE$1 = isPure;
1851
1838
 
1852
- var IteratorProxy = createIteratorProxy(function () {
1839
+ var IteratorProxy$1 = createIteratorProxy$1(function () {
1853
1840
  var iterator = this.iterator;
1854
1841
  var mapper = this.mapper;
1855
1842
  var result, inner;
1856
1843
 
1857
1844
  while (true) {
1858
1845
  if (inner = this.inner) try {
1859
- result = anObject(call(inner.next, inner.iterator));
1846
+ result = anObject$1(call$1(inner.next, inner.iterator));
1860
1847
  if (!result.done) return result.value;
1861
1848
  this.inner = null;
1862
1849
  } catch (error) { iteratorClose(iterator, 'throw', error); }
1863
1850
 
1864
- result = anObject(call(this.next, iterator));
1851
+ result = anObject$1(call$1(this.next, iterator));
1865
1852
 
1866
1853
  if (this.done = !!result.done) return;
1867
1854
 
@@ -1873,17 +1860,51 @@ var IteratorProxy = createIteratorProxy(function () {
1873
1860
 
1874
1861
  // `Iterator.prototype.flatMap` method
1875
1862
  // https://github.com/tc39/proposal-iterator-helpers
1876
- $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
1863
+ $$1({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$1 }, {
1877
1864
  flatMap: function flatMap(mapper) {
1878
- anObject(this);
1879
- aCallable(mapper);
1880
- return new IteratorProxy(getIteratorDirect(this), {
1865
+ anObject$1(this);
1866
+ aCallable$1(mapper);
1867
+ return new IteratorProxy$1(getIteratorDirect$1(this), {
1881
1868
  mapper: mapper,
1882
1869
  inner: null
1883
1870
  });
1884
1871
  }
1885
1872
  });
1886
1873
 
1874
+ var call = functionCall;
1875
+ var aCallable = aCallable$7;
1876
+ var anObject = anObject$e;
1877
+ var getIteratorDirect = getIteratorDirect$5;
1878
+ var createIteratorProxy = iteratorCreateProxy;
1879
+ var callWithSafeIterationClosing = callWithSafeIterationClosing$2;
1880
+
1881
+ var IteratorProxy = createIteratorProxy(function () {
1882
+ var iterator = this.iterator;
1883
+ var result = anObject(call(this.next, iterator));
1884
+ var done = this.done = !!result.done;
1885
+ if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);
1886
+ });
1887
+
1888
+ // `Iterator.prototype.map` method
1889
+ // https://github.com/tc39/proposal-iterator-helpers
1890
+ var iteratorMap = function map(mapper) {
1891
+ anObject(this);
1892
+ aCallable(mapper);
1893
+ return new IteratorProxy(getIteratorDirect(this), {
1894
+ mapper: mapper
1895
+ });
1896
+ };
1897
+
1898
+ var $ = _export;
1899
+ var map = iteratorMap;
1900
+ var IS_PURE = isPure;
1901
+
1902
+ // `Iterator.prototype.map` method
1903
+ // https://github.com/tc39/proposal-iterator-helpers
1904
+ $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
1905
+ map: map
1906
+ });
1907
+
1887
1908
  /**
1888
1909
  * Can search up to 10 criteria at a time.
1889
1910
  *
@@ -2449,50 +2470,19 @@ function searchRecordsPageFactory(context) {
2449
2470
  function getRelatedRecordsFunctionFactory(context) {
2450
2471
  return config => {
2451
2472
  const {
2452
- targetModule
2473
+ targetModule,
2474
+ returnEmptyRecordsInsteadOfNull = true
2453
2475
  } = config;
2454
- return input => context.fetchJson(`/v2/${input.module}/${input.id}/${targetModule}?${zohoRecruitUrlSearchParamsMinusIdAndModule(input, input.filter).toString()}`, zohoRecruitApiFetchJsonInput('GET'));
2476
+ return input => context.fetchJson(`/v2/${input.module}/${input.id}/${targetModule}?${zohoRecruitUrlSearchParamsMinusIdAndModule(input, input.filter).toString()}`, zohoRecruitApiFetchJsonInput('GET')).then(x => x ?? (returnEmptyRecordsInsteadOfNull !== false ? emptyZohoPageResult() : x));
2455
2477
  };
2456
2478
  }
2457
- function createNotes(context) {
2458
- return input => context.fetchJson(`/v2/Notes`, zohoRecruitApiFetchJsonInput('POST', {
2459
- data: input.data
2460
- })).then(x => {
2461
- return zohoRecruitMultiRecordResult(util.asArray(input.data), x.data);
2462
- });
2463
- }
2464
- function deleteNotes(context) {
2465
- return input => context.fetchJson(`/v2/Notes?${fetch.makeUrlSearchParams({
2466
- ids: input.ids
2467
- })}`, zohoRecruitApiFetchJsonInput('DELETE')).then(x => {
2468
- return zohoRecruitMultiRecordResult(util.asArray(input.ids), x.data);
2469
- });
2470
- }
2471
- function getNotesForRecord(context) {
2479
+ function getEmailsForRecord(context) {
2472
2480
  return getRelatedRecordsFunctionFactory(context)({
2473
- targetModule: 'Notes'
2481
+ targetModule: ZOHO_RECRUIT_EMAILS_MODULE
2474
2482
  });
2475
2483
  }
2476
- function getNotesForRecordPageFactory(context) {
2477
- return zohoFetchPageFactory(getNotesForRecord(context));
2478
- }
2479
- function createNotesForRecord(context) {
2480
- const createNotesInstance = createNotes(context);
2481
- return input => {
2482
- const {
2483
- module: se_module,
2484
- id: Parent_Id,
2485
- notes
2486
- } = input;
2487
- const createNotesRequest = {
2488
- data: util.asArray(notes).map(x => ({
2489
- ...x,
2490
- se_module,
2491
- Parent_Id
2492
- }))
2493
- };
2494
- return createNotesInstance(createNotesRequest);
2495
- };
2484
+ function getEmailsForRecordPageFactory(context) {
2485
+ return zohoFetchPageFactory(getEmailsForRecord(context));
2496
2486
  }
2497
2487
  class ZohoRecruitExecuteRestApiFunctionError extends makeError.BaseError {
2498
2488
  constructor(error) {
@@ -2596,19 +2586,6 @@ function zohoRecruitMultiRecordResult(input, results) {
2596
2586
  return result;
2597
2587
  }
2598
2588
 
2599
- /**
2600
- * Candidates module name
2601
- */
2602
- const ZOHO_RECRUIT_CANDIDATES_MODULE = 'Candidates';
2603
- /**
2604
- * Job Openings module name
2605
- */
2606
- const ZOHO_RECRUIT_JOB_OPENINGS_MODULE = 'Job_Openings';
2607
- /**
2608
- * Returns true if it is a valid ZohoRecruitValidUrl.
2609
- */
2610
- const isZohoRecruitValidUrl = util.isStandardInternetAccessibleWebsiteUrl;
2611
-
2612
2589
  /**
2613
2590
  * Associates one or more candidates with one or more job openings.
2614
2591
  *
@@ -2670,6 +2647,109 @@ function searchJobOpeningAssociatedCandidateRecordsPageFactory(context) {
2670
2647
  return zohoFetchPageFactory(searchJobOpeningAssociatedCandidateRecords(context));
2671
2648
  }
2672
2649
 
2650
+ function createNotes(context) {
2651
+ return input => context.fetchJson(`/v2/${ZOHO_RECRUIT_NOTES_MODULE}`, zohoRecruitApiFetchJsonInput('POST', {
2652
+ data: input.data
2653
+ })).then(x => {
2654
+ return zohoRecruitMultiRecordResult(util.asArray(input.data), x.data);
2655
+ });
2656
+ }
2657
+ function deleteNotes(context) {
2658
+ return input => context.fetchJson(`/v2/${ZOHO_RECRUIT_NOTES_MODULE}?${fetch.makeUrlSearchParams({
2659
+ ids: input.ids
2660
+ })}`, zohoRecruitApiFetchJsonInput('DELETE')).then(x => {
2661
+ return zohoRecruitMultiRecordResult(util.asArray(input.ids), x.data);
2662
+ });
2663
+ }
2664
+ function getNotesForRecord(context) {
2665
+ return getRelatedRecordsFunctionFactory(context)({
2666
+ targetModule: ZOHO_RECRUIT_NOTES_MODULE
2667
+ });
2668
+ }
2669
+ function getNotesForRecordPageFactory(context) {
2670
+ return zohoFetchPageFactory(getNotesForRecord(context));
2671
+ }
2672
+ function createNotesForRecord(context) {
2673
+ const createNotesInstance = createNotes(context);
2674
+ return input => {
2675
+ const {
2676
+ module: se_module,
2677
+ id: Parent_Id,
2678
+ notes
2679
+ } = input;
2680
+ const createNotesRequest = {
2681
+ data: util.asArray(notes).map(x => ({
2682
+ ...x,
2683
+ se_module,
2684
+ Parent_Id
2685
+ }))
2686
+ };
2687
+ return createNotesInstance(createNotesRequest);
2688
+ };
2689
+ }
2690
+
2691
+ function createTagsForModule(context) {
2692
+ return input => context.fetchJson(`/v2/settings/tags?${fetch.makeUrlSearchParams({
2693
+ module: input.module
2694
+ })}`, zohoRecruitApiFetchJsonInput('POST', {
2695
+ tags: util.asArray(input.tags)
2696
+ })).then(x => {
2697
+ const result = zohoRecruitMultiRecordResult(util.asArray(input.tags), x.tags);
2698
+ const {
2699
+ included: duplicateErrorItems,
2700
+ excluded: otherErrorItems
2701
+ } = util.separateValues(result.errorItems, x => {
2702
+ return x.result.code === ZOHO_DUPLICATE_DATA_ERROR_CODE;
2703
+ });
2704
+ return {
2705
+ ...result,
2706
+ errorItems: otherErrorItems,
2707
+ duplicateErrorItems,
2708
+ allErrorItems: result.errorItems
2709
+ };
2710
+ });
2711
+ }
2712
+ /**
2713
+ * Returns the list of tags within a module.
2714
+ *
2715
+ * https://www.zoho.com/recruit/developer-guide/apiv2/get-tag-list.html
2716
+ *
2717
+ * @param context
2718
+ * @returns
2719
+ */
2720
+ function getTagsForModule(context) {
2721
+ return input => context.fetchJson(`/v2/settings/tags?${fetch.makeUrlSearchParams({
2722
+ module: input.module,
2723
+ my_tags: input.my_tags
2724
+ })}`, zohoRecruitApiFetchJsonInput('GET')).then(x => {
2725
+ // NOTE: This doesn't follow the api documentation, and instead is a normal page result except it has "tags" instead of "data".
2726
+ return {
2727
+ ...x,
2728
+ data: x.tags
2729
+ };
2730
+ });
2731
+ }
2732
+ function getTagsForModulePageFactory(context) {
2733
+ return zohoFetchPageFactory(getTagsForModule(context));
2734
+ }
2735
+ /**
2736
+ * Associates one or more candidates with one or more job openings.
2737
+ *
2738
+ * https://www.zoho.com/recruit/developer-guide/apiv2/associate-candidate.html
2739
+ *
2740
+ * @param context
2741
+ * @returns
2742
+ */
2743
+ function addTagsToRecords(context) {
2744
+ return input => context.fetchJson(`/v2/${ZOHO_RECRUIT_CANDIDATES_MODULE}/actions/add_tags?${fetch.makeUrlSearchParams({
2745
+ tag_names: input.tag_names,
2746
+ ids: input.ids
2747
+ })}`, zohoRecruitApiFetchJsonInput('POST')).then(x => {
2748
+ const resultInputMap = x.data.map(() => input); // assign "input" to each value for now
2749
+ return zohoRecruitMultiRecordResult(resultInputMap, x.data);
2750
+ });
2751
+ }
2752
+
2673
2753
  /**
2674
2754
  * Creates a ZohoRecruitSearchRecordsCriteriaEntryArray from an array of emails.
2675
2755
  *
@@ -2868,6 +2948,11 @@ function zohoRecruitFactory(factoryConfig) {
2868
2948
  };
2869
2949
  }
2870
2950
 
2951
+ /**
2952
+ * Maximum length of ZohoRecruitTagName
2953
+ */
2954
+ const ZOHO_RECRUIT_TAG_NAME_MAX_LENGTH = 25;
2955
+
2871
2956
  /**
2872
2957
  * Trades a refresh token for a new AccessToken
2873
2958
  * @param context
@@ -3056,8 +3141,11 @@ exports.ZOHO_RATE_LIMIT_REMAINING_HEADER = ZOHO_RATE_LIMIT_REMAINING_HEADER;
3056
3141
  exports.ZOHO_RATE_LIMIT_RESET_HEADER = ZOHO_RATE_LIMIT_RESET_HEADER;
3057
3142
  exports.ZOHO_RECRUIT_ALREADY_ASSOCIATED_ERROR_CODE = ZOHO_RECRUIT_ALREADY_ASSOCIATED_ERROR_CODE;
3058
3143
  exports.ZOHO_RECRUIT_CANDIDATES_MODULE = ZOHO_RECRUIT_CANDIDATES_MODULE;
3144
+ exports.ZOHO_RECRUIT_EMAILS_MODULE = ZOHO_RECRUIT_EMAILS_MODULE;
3059
3145
  exports.ZOHO_RECRUIT_JOB_OPENINGS_MODULE = ZOHO_RECRUIT_JOB_OPENINGS_MODULE;
3146
+ exports.ZOHO_RECRUIT_NOTES_MODULE = ZOHO_RECRUIT_NOTES_MODULE;
3060
3147
  exports.ZOHO_RECRUIT_SERVICE_NAME = ZOHO_RECRUIT_SERVICE_NAME;
3148
+ exports.ZOHO_RECRUIT_TAG_NAME_MAX_LENGTH = ZOHO_RECRUIT_TAG_NAME_MAX_LENGTH;
3061
3149
  exports.ZOHO_SUCCESS_CODE = ZOHO_SUCCESS_CODE;
3062
3150
  exports.ZOHO_SUCCESS_STATUS = ZOHO_SUCCESS_STATUS;
3063
3151
  exports.ZOHO_TOO_MANY_REQUESTS_ERROR_CODE = ZOHO_TOO_MANY_REQUESTS_ERROR_CODE;
@@ -3078,20 +3166,26 @@ exports.ZohoServerError = ZohoServerError;
3078
3166
  exports.ZohoServerFetchResponseError = ZohoServerFetchResponseError;
3079
3167
  exports.ZohoTooManyRequestsError = ZohoTooManyRequestsError;
3080
3168
  exports.accessToken = accessToken;
3169
+ exports.addTagsToRecords = addTagsToRecords;
3081
3170
  exports.assertRecordDataArrayResultHasContent = assertRecordDataArrayResultHasContent;
3082
3171
  exports.associateCandidateRecordsWithJobOpenings = associateCandidateRecordsWithJobOpenings;
3083
3172
  exports.createNotes = createNotes;
3084
3173
  exports.createNotesForRecord = createNotesForRecord;
3174
+ exports.createTagsForModule = createTagsForModule;
3085
3175
  exports.deleteNotes = deleteNotes;
3086
3176
  exports.deleteRecord = deleteRecord;
3087
3177
  exports.emptyZohoPageResult = emptyZohoPageResult;
3088
3178
  exports.escapeZohoFieldValueForCriteriaString = escapeZohoFieldValueForCriteriaString;
3089
3179
  exports.executeRestApiFunction = executeRestApiFunction;
3180
+ exports.getEmailsForRecord = getEmailsForRecord;
3181
+ exports.getEmailsForRecordPageFactory = getEmailsForRecordPageFactory;
3090
3182
  exports.getNotesForRecord = getNotesForRecord;
3091
3183
  exports.getNotesForRecordPageFactory = getNotesForRecordPageFactory;
3092
3184
  exports.getRecordById = getRecordById;
3093
3185
  exports.getRecords = getRecords;
3094
3186
  exports.getRelatedRecordsFunctionFactory = getRelatedRecordsFunctionFactory;
3187
+ exports.getTagsForModule = getTagsForModule;
3188
+ exports.getTagsForModulePageFactory = getTagsForModulePageFactory;
3095
3189
  exports.handleZohoAccountsErrorFetch = handleZohoAccountsErrorFetch;
3096
3190
  exports.handleZohoErrorFetchFactory = handleZohoErrorFetchFactory;
3097
3191
  exports.handleZohoRecruitErrorFetch = handleZohoRecruitErrorFetch;
package/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { getNextPageNumber, escapeStringCharactersFunction, filterMaybeArrayValues, asArray, MS_IN_MINUTE, isStandardInternetAccessibleWebsiteUrl, separateValues, resetPeriodPromiseRateLimiter, MS_IN_SECOND } from '@dereekb/util';
1
+ import { getNextPageNumber, isStandardInternetAccessibleWebsiteUrl, escapeStringCharactersFunction, filterMaybeArrayValues, asArray, MS_IN_MINUTE, separateValues, resetPeriodPromiseRateLimiter, MS_IN_SECOND } from '@dereekb/util';
2
2
  import { fetchPageFactory, FetchResponseError, makeUrlSearchParams, FetchRequestFactoryError, rateLimitedFetchHandler, fetchJsonFunction, returnNullHandleFetchJsonParseErrorFunction, fetchApiFetchService } from '@dereekb/util/fetch';
3
3
  import { BaseError } from 'make-error';
4
4
 
@@ -1739,40 +1739,6 @@ $$2({ target: 'Iterator', proto: true, real: true }, {
1739
1739
  }
1740
1740
  });
1741
1741
 
1742
- var call$2 = functionCall;
1743
- var aCallable$1 = aCallable$7;
1744
- var anObject$2 = anObject$e;
1745
- var getIteratorDirect$2 = getIteratorDirect$5;
1746
- var createIteratorProxy$1 = iteratorCreateProxy;
1747
- var callWithSafeIterationClosing = callWithSafeIterationClosing$2;
1748
-
1749
- var IteratorProxy$1 = createIteratorProxy$1(function () {
1750
- var iterator = this.iterator;
1751
- var result = anObject$2(call$2(this.next, iterator));
1752
- var done = this.done = !!result.done;
1753
- if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);
1754
- });
1755
-
1756
- // `Iterator.prototype.map` method
1757
- // https://github.com/tc39/proposal-iterator-helpers
1758
- var iteratorMap = function map(mapper) {
1759
- anObject$2(this);
1760
- aCallable$1(mapper);
1761
- return new IteratorProxy$1(getIteratorDirect$2(this), {
1762
- mapper: mapper
1763
- });
1764
- };
1765
-
1766
- var $$1 = _export;
1767
- var map = iteratorMap;
1768
- var IS_PURE$1 = isPure;
1769
-
1770
- // `Iterator.prototype.map` method
1771
- // https://github.com/tc39/proposal-iterator-helpers
1772
- $$1({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$1 }, {
1773
- map: map
1774
- });
1775
-
1776
1742
  /**
1777
1743
  * Returns an empty ZohoPageResult that is typed to R and has no more records/results.
1778
1744
  */
@@ -1826,40 +1792,61 @@ function zohoRecruitConfigApiUrl(input) {
1826
1792
  }
1827
1793
  }
1828
1794
 
1829
- var call$1 = functionCall;
1830
- var anObject$1 = anObject$e;
1831
- var getIteratorDirect$1 = getIteratorDirect$5;
1795
+ /**
1796
+ * Candidates module name
1797
+ */
1798
+ const ZOHO_RECRUIT_CANDIDATES_MODULE = 'Candidates';
1799
+ /**
1800
+ * Job Openings module name
1801
+ */
1802
+ const ZOHO_RECRUIT_JOB_OPENINGS_MODULE = 'Job_Openings';
1803
+ /**
1804
+ * Notes module name
1805
+ */
1806
+ const ZOHO_RECRUIT_NOTES_MODULE = 'Notes';
1807
+ /**
1808
+ * Emails module name
1809
+ */
1810
+ const ZOHO_RECRUIT_EMAILS_MODULE = 'Emails';
1811
+ /**
1812
+ * Returns true if it is a valid ZohoRecruitValidUrl.
1813
+ */
1814
+ const isZohoRecruitValidUrl = isStandardInternetAccessibleWebsiteUrl;
1815
+
1816
+ var call$2 = functionCall;
1817
+ var anObject$2 = anObject$e;
1818
+ var getIteratorDirect$2 = getIteratorDirect$5;
1832
1819
  var getIteratorMethod = getIteratorMethod$3;
1833
1820
 
1834
1821
  var getIteratorFlattenable$1 = function (obj, stringHandling) {
1835
- if (!stringHandling || typeof obj !== 'string') anObject$1(obj);
1822
+ if (!stringHandling || typeof obj !== 'string') anObject$2(obj);
1836
1823
  var method = getIteratorMethod(obj);
1837
- return getIteratorDirect$1(anObject$1(method !== undefined ? call$1(method, obj) : obj));
1824
+ return getIteratorDirect$2(anObject$2(method !== undefined ? call$2(method, obj) : obj));
1838
1825
  };
1839
1826
 
1840
- var $ = _export;
1841
- var call = functionCall;
1842
- var aCallable = aCallable$7;
1843
- var anObject = anObject$e;
1844
- var getIteratorDirect = getIteratorDirect$5;
1827
+ var $$1 = _export;
1828
+ var call$1 = functionCall;
1829
+ var aCallable$1 = aCallable$7;
1830
+ var anObject$1 = anObject$e;
1831
+ var getIteratorDirect$1 = getIteratorDirect$5;
1845
1832
  var getIteratorFlattenable = getIteratorFlattenable$1;
1846
- var createIteratorProxy = iteratorCreateProxy;
1833
+ var createIteratorProxy$1 = iteratorCreateProxy;
1847
1834
  var iteratorClose = iteratorClose$4;
1848
- var IS_PURE = isPure;
1835
+ var IS_PURE$1 = isPure;
1849
1836
 
1850
- var IteratorProxy = createIteratorProxy(function () {
1837
+ var IteratorProxy$1 = createIteratorProxy$1(function () {
1851
1838
  var iterator = this.iterator;
1852
1839
  var mapper = this.mapper;
1853
1840
  var result, inner;
1854
1841
 
1855
1842
  while (true) {
1856
1843
  if (inner = this.inner) try {
1857
- result = anObject(call(inner.next, inner.iterator));
1844
+ result = anObject$1(call$1(inner.next, inner.iterator));
1858
1845
  if (!result.done) return result.value;
1859
1846
  this.inner = null;
1860
1847
  } catch (error) { iteratorClose(iterator, 'throw', error); }
1861
1848
 
1862
- result = anObject(call(this.next, iterator));
1849
+ result = anObject$1(call$1(this.next, iterator));
1863
1850
 
1864
1851
  if (this.done = !!result.done) return;
1865
1852
 
@@ -1871,17 +1858,51 @@ var IteratorProxy = createIteratorProxy(function () {
1871
1858
 
1872
1859
  // `Iterator.prototype.flatMap` method
1873
1860
  // https://github.com/tc39/proposal-iterator-helpers
1874
- $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
1861
+ $$1({ target: 'Iterator', proto: true, real: true, forced: IS_PURE$1 }, {
1875
1862
  flatMap: function flatMap(mapper) {
1876
- anObject(this);
1877
- aCallable(mapper);
1878
- return new IteratorProxy(getIteratorDirect(this), {
1863
+ anObject$1(this);
1864
+ aCallable$1(mapper);
1865
+ return new IteratorProxy$1(getIteratorDirect$1(this), {
1879
1866
  mapper: mapper,
1880
1867
  inner: null
1881
1868
  });
1882
1869
  }
1883
1870
  });
1884
1871
 
1872
+ var call = functionCall;
1873
+ var aCallable = aCallable$7;
1874
+ var anObject = anObject$e;
1875
+ var getIteratorDirect = getIteratorDirect$5;
1876
+ var createIteratorProxy = iteratorCreateProxy;
1877
+ var callWithSafeIterationClosing = callWithSafeIterationClosing$2;
1878
+
1879
+ var IteratorProxy = createIteratorProxy(function () {
1880
+ var iterator = this.iterator;
1881
+ var result = anObject(call(this.next, iterator));
1882
+ var done = this.done = !!result.done;
1883
+ if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);
1884
+ });
1885
+
1886
+ // `Iterator.prototype.map` method
1887
+ // https://github.com/tc39/proposal-iterator-helpers
1888
+ var iteratorMap = function map(mapper) {
1889
+ anObject(this);
1890
+ aCallable(mapper);
1891
+ return new IteratorProxy(getIteratorDirect(this), {
1892
+ mapper: mapper
1893
+ });
1894
+ };
1895
+
1896
+ var $ = _export;
1897
+ var map = iteratorMap;
1898
+ var IS_PURE = isPure;
1899
+
1900
+ // `Iterator.prototype.map` method
1901
+ // https://github.com/tc39/proposal-iterator-helpers
1902
+ $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
1903
+ map: map
1904
+ });
1905
+
1885
1906
  /**
1886
1907
  * Can search up to 10 criteria at a time.
1887
1908
  *
@@ -2447,50 +2468,19 @@ function searchRecordsPageFactory(context) {
2447
2468
  function getRelatedRecordsFunctionFactory(context) {
2448
2469
  return config => {
2449
2470
  const {
2450
- targetModule
2471
+ targetModule,
2472
+ returnEmptyRecordsInsteadOfNull = true
2451
2473
  } = config;
2452
- return input => context.fetchJson(`/v2/${input.module}/${input.id}/${targetModule}?${zohoRecruitUrlSearchParamsMinusIdAndModule(input, input.filter).toString()}`, zohoRecruitApiFetchJsonInput('GET'));
2474
+ return input => context.fetchJson(`/v2/${input.module}/${input.id}/${targetModule}?${zohoRecruitUrlSearchParamsMinusIdAndModule(input, input.filter).toString()}`, zohoRecruitApiFetchJsonInput('GET')).then(x => x ?? (returnEmptyRecordsInsteadOfNull !== false ? emptyZohoPageResult() : x));
2453
2475
  };
2454
2476
  }
2455
- function createNotes(context) {
2456
- return input => context.fetchJson(`/v2/Notes`, zohoRecruitApiFetchJsonInput('POST', {
2457
- data: input.data
2458
- })).then(x => {
2459
- return zohoRecruitMultiRecordResult(asArray(input.data), x.data);
2460
- });
2461
- }
2462
- function deleteNotes(context) {
2463
- return input => context.fetchJson(`/v2/Notes?${makeUrlSearchParams({
2464
- ids: input.ids
2465
- })}`, zohoRecruitApiFetchJsonInput('DELETE')).then(x => {
2466
- return zohoRecruitMultiRecordResult(asArray(input.ids), x.data);
2467
- });
2468
- }
2469
- function getNotesForRecord(context) {
2477
+ function getEmailsForRecord(context) {
2470
2478
  return getRelatedRecordsFunctionFactory(context)({
2471
- targetModule: 'Notes'
2479
+ targetModule: ZOHO_RECRUIT_EMAILS_MODULE
2472
2480
  });
2473
2481
  }
2474
- function getNotesForRecordPageFactory(context) {
2475
- return zohoFetchPageFactory(getNotesForRecord(context));
2476
- }
2477
- function createNotesForRecord(context) {
2478
- const createNotesInstance = createNotes(context);
2479
- return input => {
2480
- const {
2481
- module: se_module,
2482
- id: Parent_Id,
2483
- notes
2484
- } = input;
2485
- const createNotesRequest = {
2486
- data: asArray(notes).map(x => ({
2487
- ...x,
2488
- se_module,
2489
- Parent_Id
2490
- }))
2491
- };
2492
- return createNotesInstance(createNotesRequest);
2493
- };
2482
+ function getEmailsForRecordPageFactory(context) {
2483
+ return zohoFetchPageFactory(getEmailsForRecord(context));
2494
2484
  }
2495
2485
  class ZohoRecruitExecuteRestApiFunctionError extends BaseError {
2496
2486
  constructor(error) {
@@ -2594,19 +2584,6 @@ function zohoRecruitMultiRecordResult(input, results) {
2594
2584
  return result;
2595
2585
  }
2596
2586
 
2597
- /**
2598
- * Candidates module name
2599
- */
2600
- const ZOHO_RECRUIT_CANDIDATES_MODULE = 'Candidates';
2601
- /**
2602
- * Job Openings module name
2603
- */
2604
- const ZOHO_RECRUIT_JOB_OPENINGS_MODULE = 'Job_Openings';
2605
- /**
2606
- * Returns true if it is a valid ZohoRecruitValidUrl.
2607
- */
2608
- const isZohoRecruitValidUrl = isStandardInternetAccessibleWebsiteUrl;
2609
-
2610
2587
  /**
2611
2588
  * Associates one or more candidates with one or more job openings.
2612
2589
  *
@@ -2668,6 +2645,109 @@ function searchJobOpeningAssociatedCandidateRecordsPageFactory(context) {
2668
2645
  return zohoFetchPageFactory(searchJobOpeningAssociatedCandidateRecords(context));
2669
2646
  }
2670
2647
 
2648
+ function createNotes(context) {
2649
+ return input => context.fetchJson(`/v2/${ZOHO_RECRUIT_NOTES_MODULE}`, zohoRecruitApiFetchJsonInput('POST', {
2650
+ data: input.data
2651
+ })).then(x => {
2652
+ return zohoRecruitMultiRecordResult(asArray(input.data), x.data);
2653
+ });
2654
+ }
2655
+ function deleteNotes(context) {
2656
+ return input => context.fetchJson(`/v2/${ZOHO_RECRUIT_NOTES_MODULE}?${makeUrlSearchParams({
2657
+ ids: input.ids
2658
+ })}`, zohoRecruitApiFetchJsonInput('DELETE')).then(x => {
2659
+ return zohoRecruitMultiRecordResult(asArray(input.ids), x.data);
2660
+ });
2661
+ }
2662
+ function getNotesForRecord(context) {
2663
+ return getRelatedRecordsFunctionFactory(context)({
2664
+ targetModule: ZOHO_RECRUIT_NOTES_MODULE
2665
+ });
2666
+ }
2667
+ function getNotesForRecordPageFactory(context) {
2668
+ return zohoFetchPageFactory(getNotesForRecord(context));
2669
+ }
2670
+ function createNotesForRecord(context) {
2671
+ const createNotesInstance = createNotes(context);
2672
+ return input => {
2673
+ const {
2674
+ module: se_module,
2675
+ id: Parent_Id,
2676
+ notes
2677
+ } = input;
2678
+ const createNotesRequest = {
2679
+ data: asArray(notes).map(x => ({
2680
+ ...x,
2681
+ se_module,
2682
+ Parent_Id
2683
+ }))
2684
+ };
2685
+ return createNotesInstance(createNotesRequest);
2686
+ };
2687
+ }
2688
+
2689
+ function createTagsForModule(context) {
2690
+ return input => context.fetchJson(`/v2/settings/tags?${makeUrlSearchParams({
2691
+ module: input.module
2692
+ })}`, zohoRecruitApiFetchJsonInput('POST', {
2693
+ tags: asArray(input.tags)
2694
+ })).then(x => {
2695
+ const result = zohoRecruitMultiRecordResult(asArray(input.tags), x.tags);
2696
+ const {
2697
+ included: duplicateErrorItems,
2698
+ excluded: otherErrorItems
2699
+ } = separateValues(result.errorItems, x => {
2700
+ return x.result.code === ZOHO_DUPLICATE_DATA_ERROR_CODE;
2701
+ });
2702
+ return {
2703
+ ...result,
2704
+ errorItems: otherErrorItems,
2705
+ duplicateErrorItems,
2706
+ allErrorItems: result.errorItems
2707
+ };
2708
+ });
2709
+ }
2710
+ /**
2711
+ * Returns the list of tags within a module.
2712
+ *
2713
+ * https://www.zoho.com/recruit/developer-guide/apiv2/get-tag-list.html
2714
+ *
2715
+ * @param context
2716
+ * @returns
2717
+ */
2718
+ function getTagsForModule(context) {
2719
+ return input => context.fetchJson(`/v2/settings/tags?${makeUrlSearchParams({
2720
+ module: input.module,
2721
+ my_tags: input.my_tags
2722
+ })}`, zohoRecruitApiFetchJsonInput('GET')).then(x => {
2723
+ // NOTE: This doesn't follow the api documentation, and instead is a normal page result except it has "tags" instead of "data".
2724
+ return {
2725
+ ...x,
2726
+ data: x.tags
2727
+ };
2728
+ });
2729
+ }
2730
+ function getTagsForModulePageFactory(context) {
2731
+ return zohoFetchPageFactory(getTagsForModule(context));
2732
+ }
2733
+ /**
2734
+ * Associates one or more candidates with one or more job openings.
2735
+ *
2736
+ * https://www.zoho.com/recruit/developer-guide/apiv2/associate-candidate.html
2737
+ *
2738
+ * @param context
2739
+ * @returns
2740
+ */
2741
+ function addTagsToRecords(context) {
2742
+ return input => context.fetchJson(`/v2/${ZOHO_RECRUIT_CANDIDATES_MODULE}/actions/add_tags?${makeUrlSearchParams({
2743
+ tag_names: input.tag_names,
2744
+ ids: input.ids
2745
+ })}`, zohoRecruitApiFetchJsonInput('POST')).then(x => {
2746
+ const resultInputMap = x.data.map(() => input); // assign "input" to each value for now
2747
+ return zohoRecruitMultiRecordResult(resultInputMap, x.data);
2748
+ });
2749
+ }
2750
+
2671
2751
  /**
2672
2752
  * Creates a ZohoRecruitSearchRecordsCriteriaEntryArray from an array of emails.
2673
2753
  *
@@ -2866,6 +2946,11 @@ function zohoRecruitFactory(factoryConfig) {
2866
2946
  };
2867
2947
  }
2868
2948
 
2949
+ /**
2950
+ * Maximum length of ZohoRecruitTagName
2951
+ */
2952
+ const ZOHO_RECRUIT_TAG_NAME_MAX_LENGTH = 25;
2953
+
2869
2954
  /**
2870
2955
  * Trades a refresh token for a new AccessToken
2871
2956
  * @param context
@@ -3034,4 +3119,4 @@ function zohoDateTimeString(date) {
3034
3119
  return isoDate.substring(0, isoDate.length - 5) + 'Z';
3035
3120
  }
3036
3121
 
3037
- export { DEFAULT_ZOHO_API_RATE_LIMIT, DEFAULT_ZOHO_API_RATE_LIMIT_RESET_PERIOD, DEFAULT_ZOHO_RATE_LIMITED_TOO_MANY_REQUETS_LOG_FUNCTION, MAX_ZOHO_RECRUIT_SEARCH_MODULE_RECORDS_CRITERIA, ZOHO_ACCOUNTS_INVALID_CLIENT_ERROR_CODE, ZOHO_ACCOUNTS_INVALID_CODE_ERROR_CODE, ZOHO_ACCOUNTS_US_API_URL, ZOHO_DUPLICATE_DATA_ERROR_CODE, ZOHO_ERROR_STATUS, ZOHO_FAILURE_ERROR_CODE, ZOHO_INTERNAL_ERROR_CODE, ZOHO_INVALID_AUTHORIZATION_ERROR_CODE, ZOHO_INVALID_DATA_ERROR_CODE, ZOHO_INVALID_QUERY_ERROR_CODE, ZOHO_MANDATORY_NOT_FOUND_ERROR_CODE, ZOHO_RATE_LIMIT_LIMIT_HEADER, ZOHO_RATE_LIMIT_REMAINING_HEADER, ZOHO_RATE_LIMIT_RESET_HEADER, ZOHO_RECRUIT_ALREADY_ASSOCIATED_ERROR_CODE, ZOHO_RECRUIT_CANDIDATES_MODULE, ZOHO_RECRUIT_JOB_OPENINGS_MODULE, ZOHO_RECRUIT_SERVICE_NAME, ZOHO_SUCCESS_CODE, ZOHO_SUCCESS_STATUS, ZOHO_TOO_MANY_REQUESTS_ERROR_CODE, ZOHO_TOO_MANY_REQUESTS_HTTP_STATUS_CODE, ZohoAccountsAccessTokenError, ZohoAccountsAuthFailureError, ZohoInternalError, ZohoInvalidAuthorizationError, ZohoInvalidQueryError, ZohoRecruitExecuteRestApiFunctionError, ZohoRecruitRecordCrudDuplicateDataError, ZohoRecruitRecordCrudError, ZohoRecruitRecordCrudInvalidDataError, ZohoRecruitRecordCrudMandatoryFieldNotFoundError, ZohoRecruitRecordCrudNoMatchingRecordError, ZohoRecruitRecordNoContentError, ZohoServerError, ZohoServerFetchResponseError, ZohoTooManyRequestsError, accessToken, assertRecordDataArrayResultHasContent, associateCandidateRecordsWithJobOpenings, createNotes, createNotesForRecord, deleteNotes, deleteRecord, emptyZohoPageResult, escapeZohoFieldValueForCriteriaString, executeRestApiFunction, getNotesForRecord, getNotesForRecordPageFactory, getRecordById, getRecords, getRelatedRecordsFunctionFactory, handleZohoAccountsErrorFetch, handleZohoErrorFetchFactory, handleZohoRecruitErrorFetch, insertRecord, interceptZohoAccounts200StatusWithErrorResponse, interceptZohoErrorResponseFactory, interceptZohoRecruit200StatusWithErrorResponse, isZohoRecruitValidUrl, logZohoAccountsErrorToConsole, logZohoRecruitErrorToConsole, logZohoServerErrorFunction, parseZohoAccountsError, parseZohoAccountsServerErrorResponseData, parseZohoRecruitError, parseZohoRecruitServerErrorResponseData, parseZohoServerErrorResponseData, safeZohoDateTimeString, searchAssociatedRecords, searchCandidateAssociatedJobOpeningRecords, searchCandidateAssociatedJobOpeningRecordsPageFactory, searchJobOpeningAssociatedCandidateRecords, searchJobOpeningAssociatedCandidateRecordsPageFactory, searchRecords, searchRecordsPageFactory, tryFindZohoServerErrorData, updateRecord, upsertRecord, zohoAccessTokenStringFactory, zohoAccountsApiFetchJsonInput, zohoAccountsConfigApiUrl, zohoAccountsFactory, zohoAccountsZohoAccessTokenFactory, zohoDateTimeString, zohoFetchPageFactory, zohoRateLimitHeaderDetails, zohoRateLimitedFetchHandler, zohoRecruitApiFetchJsonInput, zohoRecruitChangeObjectLikeResponseSuccessAndErrorPairs, zohoRecruitConfigApiUrl, zohoRecruitFactory, zohoRecruitMultiRecordResult, zohoRecruitRecordCrudError, zohoRecruitSearchRecordsCriteriaEntriesForEmails, zohoRecruitSearchRecordsCriteriaEntryToCriteriaString, zohoRecruitSearchRecordsCriteriaString, zohoRecruitSearchRecordsCriteriaStringForTree, zohoRecruitUrlSearchParams, zohoRecruitUrlSearchParamsMinusIdAndModule, zohoRecruitUrlSearchParamsMinusModule, zohoServerErrorData };
3122
+ export { DEFAULT_ZOHO_API_RATE_LIMIT, DEFAULT_ZOHO_API_RATE_LIMIT_RESET_PERIOD, DEFAULT_ZOHO_RATE_LIMITED_TOO_MANY_REQUETS_LOG_FUNCTION, MAX_ZOHO_RECRUIT_SEARCH_MODULE_RECORDS_CRITERIA, ZOHO_ACCOUNTS_INVALID_CLIENT_ERROR_CODE, ZOHO_ACCOUNTS_INVALID_CODE_ERROR_CODE, ZOHO_ACCOUNTS_US_API_URL, ZOHO_DUPLICATE_DATA_ERROR_CODE, ZOHO_ERROR_STATUS, ZOHO_FAILURE_ERROR_CODE, ZOHO_INTERNAL_ERROR_CODE, ZOHO_INVALID_AUTHORIZATION_ERROR_CODE, ZOHO_INVALID_DATA_ERROR_CODE, ZOHO_INVALID_QUERY_ERROR_CODE, ZOHO_MANDATORY_NOT_FOUND_ERROR_CODE, ZOHO_RATE_LIMIT_LIMIT_HEADER, ZOHO_RATE_LIMIT_REMAINING_HEADER, ZOHO_RATE_LIMIT_RESET_HEADER, ZOHO_RECRUIT_ALREADY_ASSOCIATED_ERROR_CODE, ZOHO_RECRUIT_CANDIDATES_MODULE, ZOHO_RECRUIT_EMAILS_MODULE, ZOHO_RECRUIT_JOB_OPENINGS_MODULE, ZOHO_RECRUIT_NOTES_MODULE, ZOHO_RECRUIT_SERVICE_NAME, ZOHO_RECRUIT_TAG_NAME_MAX_LENGTH, ZOHO_SUCCESS_CODE, ZOHO_SUCCESS_STATUS, ZOHO_TOO_MANY_REQUESTS_ERROR_CODE, ZOHO_TOO_MANY_REQUESTS_HTTP_STATUS_CODE, ZohoAccountsAccessTokenError, ZohoAccountsAuthFailureError, ZohoInternalError, ZohoInvalidAuthorizationError, ZohoInvalidQueryError, ZohoRecruitExecuteRestApiFunctionError, ZohoRecruitRecordCrudDuplicateDataError, ZohoRecruitRecordCrudError, ZohoRecruitRecordCrudInvalidDataError, ZohoRecruitRecordCrudMandatoryFieldNotFoundError, ZohoRecruitRecordCrudNoMatchingRecordError, ZohoRecruitRecordNoContentError, ZohoServerError, ZohoServerFetchResponseError, ZohoTooManyRequestsError, accessToken, addTagsToRecords, assertRecordDataArrayResultHasContent, associateCandidateRecordsWithJobOpenings, createNotes, createNotesForRecord, createTagsForModule, deleteNotes, deleteRecord, emptyZohoPageResult, escapeZohoFieldValueForCriteriaString, executeRestApiFunction, getEmailsForRecord, getEmailsForRecordPageFactory, getNotesForRecord, getNotesForRecordPageFactory, getRecordById, getRecords, getRelatedRecordsFunctionFactory, getTagsForModule, getTagsForModulePageFactory, handleZohoAccountsErrorFetch, handleZohoErrorFetchFactory, handleZohoRecruitErrorFetch, insertRecord, interceptZohoAccounts200StatusWithErrorResponse, interceptZohoErrorResponseFactory, interceptZohoRecruit200StatusWithErrorResponse, isZohoRecruitValidUrl, logZohoAccountsErrorToConsole, logZohoRecruitErrorToConsole, logZohoServerErrorFunction, parseZohoAccountsError, parseZohoAccountsServerErrorResponseData, parseZohoRecruitError, parseZohoRecruitServerErrorResponseData, parseZohoServerErrorResponseData, safeZohoDateTimeString, searchAssociatedRecords, searchCandidateAssociatedJobOpeningRecords, searchCandidateAssociatedJobOpeningRecordsPageFactory, searchJobOpeningAssociatedCandidateRecords, searchJobOpeningAssociatedCandidateRecordsPageFactory, searchRecords, searchRecordsPageFactory, tryFindZohoServerErrorData, updateRecord, upsertRecord, zohoAccessTokenStringFactory, zohoAccountsApiFetchJsonInput, zohoAccountsConfigApiUrl, zohoAccountsFactory, zohoAccountsZohoAccessTokenFactory, zohoDateTimeString, zohoFetchPageFactory, zohoRateLimitHeaderDetails, zohoRateLimitedFetchHandler, zohoRecruitApiFetchJsonInput, zohoRecruitChangeObjectLikeResponseSuccessAndErrorPairs, zohoRecruitConfigApiUrl, zohoRecruitFactory, zohoRecruitMultiRecordResult, zohoRecruitRecordCrudError, zohoRecruitSearchRecordsCriteriaEntriesForEmails, zohoRecruitSearchRecordsCriteriaEntryToCriteriaString, zohoRecruitSearchRecordsCriteriaString, zohoRecruitSearchRecordsCriteriaStringForTree, zohoRecruitUrlSearchParams, zohoRecruitUrlSearchParamsMinusIdAndModule, zohoRecruitUrlSearchParamsMinusModule, zohoServerErrorData };
@@ -2,6 +2,10 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [12.1.13](https://github.com/dereekb/dbx-components/compare/v12.1.12-dev...v12.1.13) (2025-06-23)
6
+
7
+
8
+
5
9
  ## [12.1.12](https://github.com/dereekb/dbx-components/compare/v12.1.11...v12.1.12) (2025-06-19)
6
10
 
7
11
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/zoho/nestjs",
3
- "version": "12.1.12",
3
+ "version": "12.1.13",
4
4
  "type": "commonjs",
5
5
  "types": "./src/index.d.ts",
6
6
  "main": "./src/index.js"
@@ -16,6 +16,9 @@ export declare class ZohoRecruitApi {
16
16
  get getRecords(): import("@dereekb/zoho").ZohoRecruitGetRecordsFunction;
17
17
  get searchRecords(): import("@dereekb/zoho").ZohoRecruitSearchRecordsFunction;
18
18
  get searchRecordsPageFactory(): import("@dereekb/zoho").SearchRecordsPageFactory;
19
+ get getRelatedRecordsFunctionFactory(): import("@dereekb/zoho").ZohoRecruitGetRelatedRecordsFunctionFactory;
20
+ get getEmailsForRecord(): import("@dereekb/zoho").ZohoRecruitGetEmailsForRecordFunction;
21
+ get getEmailsForRecordPageFactory(): import("@dereekb/zoho").GetEmailsForRecordPageFactory;
19
22
  get createNotes(): (input: import("@dereekb/zoho").ZohoRecruitCreateNotesRequest) => Promise<import("@dereekb/zoho").ZohoRecruitMultiRecordResult<import("@dereekb/zoho").NewZohoRecruitNoteData, import("@dereekb/zoho").ZohoRecruitChangeObjectResponseSuccessEntry<import("@dereekb/zoho").ZohoRecruitChangeObjectDetails>, import("@dereekb/zoho").ZohoRecruitChangeObjectResponseErrorEntry>>;
20
23
  get deleteNotes(): (input: import("@dereekb/zoho").ZohoRecruitDeleteNotesRequest) => Promise<import("@dereekb/zoho").ZohoRecruitMultiRecordResult<string, import("@dereekb/zoho").ZohoRecruitChangeObjectResponseSuccessEntry<import("@dereekb/zoho").ZohoRecruitChangeObjectDetails>, import("@dereekb/zoho").ZohoRecruitChangeObjectResponseErrorEntry>>;
21
24
  get createNotesForRecord(): import("@dereekb/zoho").ZohoRecruitCreateNotesForRecordFunction;
@@ -27,4 +30,12 @@ export declare class ZohoRecruitApi {
27
30
  get searchCandidateAssociatedJobOpeningRecordsPageFactory(): import("dist/packages/util/fetch/src").FetchPageFactory<import("@dereekb/zoho").ZohoRecruitSearchCandidateAssociatedJobOpeningRecordsInput, import("@dereekb/zoho").ZohoRecruitSearchAssociatedRecordsResponse<import("@dereekb/zoho").ZohoRecruitRecord>>;
28
31
  get searchJobOpeningAssociatedCandidateRecords(): import("@dereekb/zoho").ZohoRecruitSearchJobOpeningAssociatedCandidateRecordsFunction<import("@dereekb/zoho").ZohoRecruitRecord>;
29
32
  get searchJobOpeningAssociatedCandidateRecordsPageFactory(): import("dist/packages/util/fetch/src").FetchPageFactory<import("@dereekb/zoho").ZohoRecruitSearchJobOpeningAssociatedCandidateRecordsInput, import("@dereekb/zoho").ZohoRecruitSearchAssociatedRecordsResponse<import("@dereekb/zoho").ZohoRecruitRecord>>;
33
+ get createTagsForModule(): (input: import("@dereekb/zoho").ZohoRecruitCreateTagsRequest) => Promise<{
34
+ errorItems: import("@dereekb/zoho").ZohoRecruitMultiRecordResultEntry<import("@dereekb/zoho").ZohoRecruitCreateTagData, import("@dereekb/zoho").ZohoRecruitChangeObjectResponseErrorEntry>[];
35
+ duplicateErrorItems: import("@dereekb/zoho").ZohoRecruitMultiRecordResultEntry<import("@dereekb/zoho").ZohoRecruitCreateTagData, import("@dereekb/zoho").ZohoRecruitChangeObjectResponseErrorEntry>[];
36
+ allErrorItems: import("@dereekb/zoho").ZohoRecruitMultiRecordResultEntry<import("@dereekb/zoho").ZohoRecruitCreateTagData, import("@dereekb/zoho").ZohoRecruitChangeObjectResponseErrorEntry>[];
37
+ successItems: import("@dereekb/zoho").ZohoRecruitMultiRecordResultEntry<import("@dereekb/zoho").ZohoRecruitCreateTagData, import("@dereekb/zoho").ZohoRecruitChangeObjectResponseSuccessEntry<import("@dereekb/zoho").ZohoRecruitChangeObjectDetails>>[];
38
+ }>;
39
+ get getTagsForModule(): import("@dereekb/zoho").ZohoRecruitGetTagsFunction;
40
+ get addTagsToRecords(): import("@dereekb/zoho").ZohoRecruitAddTagsToRecordsFunction;
30
41
  }
@@ -49,6 +49,15 @@ let ZohoRecruitApi = class ZohoRecruitApi {
49
49
  get searchRecordsPageFactory() {
50
50
  return (0, zoho_1.searchRecordsPageFactory)(this.recruitContext);
51
51
  }
52
+ get getRelatedRecordsFunctionFactory() {
53
+ return (0, zoho_1.getRelatedRecordsFunctionFactory)(this.recruitContext);
54
+ }
55
+ get getEmailsForRecord() {
56
+ return (0, zoho_1.getEmailsForRecord)(this.recruitContext);
57
+ }
58
+ get getEmailsForRecordPageFactory() {
59
+ return (0, zoho_1.getEmailsForRecordPageFactory)(this.recruitContext);
60
+ }
52
61
  get createNotes() {
53
62
  return (0, zoho_1.createNotes)(this.recruitContext);
54
63
  }
@@ -82,6 +91,15 @@ let ZohoRecruitApi = class ZohoRecruitApi {
82
91
  get searchJobOpeningAssociatedCandidateRecordsPageFactory() {
83
92
  return (0, zoho_1.searchJobOpeningAssociatedCandidateRecordsPageFactory)(this.recruitContext);
84
93
  }
94
+ get createTagsForModule() {
95
+ return (0, zoho_1.createTagsForModule)(this.recruitContext);
96
+ }
97
+ get getTagsForModule() {
98
+ return (0, zoho_1.getTagsForModule)(this.recruitContext);
99
+ }
100
+ get addTagsToRecords() {
101
+ return (0, zoho_1.addTagsToRecords)(this.recruitContext);
102
+ }
85
103
  };
86
104
  exports.ZohoRecruitApi = ZohoRecruitApi;
87
105
  exports.ZohoRecruitApi = ZohoRecruitApi = tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"recruit.api.js","sourceRoot":"","sources":["../../../../../../../packages/zoho/nestjs/src/lib/recruit/recruit.api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recruit.api.js","sourceRoot":"","sources":["../../../../../../../packages/zoho/nestjs/src/lib/recruit/recruit.api.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/zoho",
3
- "version": "12.1.12",
3
+ "version": "12.1.13",
4
4
  "exports": {
5
5
  ".": {
6
6
  "types": "./src/index.d.ts",
@@ -1,8 +1,12 @@
1
1
  export * from './recruit.api';
2
2
  export * from './recruit.api.candidates';
3
+ export * from './recruit.api.notes';
4
+ export * from './recruit.api.tags';
3
5
  export * from './recruit.config';
4
6
  export * from './recruit.criteria';
5
7
  export * from './recruit.criteria.util';
6
8
  export * from './recruit.error.api';
7
9
  export * from './recruit.factory';
8
10
  export * from './recruit';
11
+ export * from './recruit.tags';
12
+ export * from './recruit.notes';
@@ -1,7 +1,7 @@
1
1
  import { ZohoDataArrayResultRef, ZohoPageFilter, ZohoPageResult } from './../zoho.api.page';
2
2
  import { FetchJsonBody, FetchJsonInput, FetchPage, FetchPageFactory, FetchPageFactoryOptions, makeUrlSearchParams } from '@dereekb/util/fetch';
3
3
  import { ZohoRecruitConfigApiUrlInput, ZohoRecruitContext } from './recruit.config';
4
- import { NewZohoRecruitNoteData, ZohoRecruitCommaSeparateFieldNames, ZohoRecruitCustomViewId, ZohoRecruitDraftOrSaveState, ZohoRecruitFieldName, ZohoRecruitModuleNameRef, ZohoRecruitChangeObjectDetails, ZohoRecruitRecord, ZohoRecruitRecordId, ZohoRecruitRecordNote, ZohoRecruitTerritoryId, ZohoRecruitTrueFalseBoth, ZohoRecruitNoteId, ZohoRecruitRestFunctionApiName, ZohoRecruitUserId, ZohoRecruitModuleName } from './recruit';
4
+ import { ZohoRecruitCommaSeparateFieldNames, ZohoRecruitCustomViewId, ZohoRecruitDraftOrSaveState, ZohoRecruitFieldName, ZohoRecruitModuleNameRef, ZohoRecruitChangeObjectDetails, ZohoRecruitRecord, ZohoRecruitRecordId, ZohoRecruitTerritoryId, ZohoRecruitTrueFalseBoth, ZohoRecruitRestFunctionApiName, ZohoRecruitUserId, ZohoRecruitModuleName, ZohoRecruitRecordEmailMetadata } from './recruit';
5
5
  import { ZohoRecruitSearchRecordsCriteriaTreeElement } from './recruit.criteria';
6
6
  import { ArrayOrValue, EmailAddress, Maybe, PhoneNumber, SortingOrder, UniqueModelWithId } from '@dereekb/util';
7
7
  import { ZohoServerErrorDataWithDetails, ZohoServerErrorStatus, ZohoServerSuccessCode, ZohoServerSuccessStatus } from '../zoho.error.api';
@@ -165,8 +165,14 @@ export type SearchRecordsPageFactory = <T = ZohoRecruitRecord>(input: ZohoRecrui
165
165
  export declare function searchRecordsPageFactory(context: ZohoRecruitContext): SearchRecordsPageFactory;
166
166
  export interface ZohoRecruitGetRelatedRecordsFunctionConfig {
167
167
  readonly targetModule: ZohoRecruitModuleName;
168
+ /**
169
+ * If true, will return an empty page result instead of null when no results are found.
170
+ *
171
+ * Defaults to true.
172
+ */
173
+ readonly returnEmptyRecordsInsteadOfNull?: boolean;
168
174
  }
169
- export type ZohoRecruitGetRelatedRecordsFunctionFactory = <T extends ZohoRecruitRecord>(input: ZohoRecruitGetRelatedRecordsFunctionConfig) => ZohoRecruitGetRelatedRecordsFunction<T>;
175
+ export type ZohoRecruitGetRelatedRecordsFunctionFactory = <T = ZohoRecruitRecord>(input: ZohoRecruitGetRelatedRecordsFunctionConfig) => ZohoRecruitGetRelatedRecordsFunction<T>;
170
176
  export type ZohoRecruitGetRelatedRecordsPageFilter = ZohoPageFilter;
171
177
  export interface ZohoRecruitGetRelatedRecordsRequest extends ZohoRecruitGetRecordByIdInput, ZohoRecruitGetRelatedRecordsPageFilter {
172
178
  /**
@@ -191,33 +197,12 @@ export type ZohoRecruitGetRelatedRecordsFunction<T = ZohoRecruitRecord> = (input
191
197
  * @returns a ZohoRecruitGetRelatedRecordsFunctionFactory
192
198
  */
193
199
  export declare function getRelatedRecordsFunctionFactory(context: ZohoRecruitContext): ZohoRecruitGetRelatedRecordsFunctionFactory;
194
- export interface ZohoRecruitCreateNotesRequest {
195
- readonly data: ZohoRecruitCreateNotesRequestEntry[];
196
- }
197
- export type ZohoRecruitCreateNotesResult = ZohoRecruitMultiRecordResult<ZohoRecruitCreateNotesRequestEntry, ZohoRecruitChangeObjectResponseSuccessEntry, ZohoRecruitChangeObjectResponseErrorEntry>;
198
- export type ZohoRecruitCreateNotesRequestEntry = NewZohoRecruitNoteData;
199
- export type ZohoRecruitCreateNotesResponse = ZohoRecruitChangeObjectResponse;
200
- export type ZohoRecruitCreateNotesFunction = (input: ZohoRecruitCreateNotesRequest) => Promise<ZohoRecruitCreateNotesResult>;
201
- export declare function createNotes(context: ZohoRecruitContext): (input: ZohoRecruitCreateNotesRequest) => Promise<ZohoRecruitMultiRecordResult<NewZohoRecruitNoteData, ZohoRecruitChangeObjectResponseSuccessEntry<ZohoRecruitChangeObjectDetails>, ZohoRecruitChangeObjectResponseErrorEntry>>;
202
- export interface ZohoRecruitDeleteNotesRequest {
203
- readonly ids: ArrayOrValue<ZohoRecruitNoteId>;
204
- }
205
- export type ZohoRecruitDeleteNotesResult = ZohoRecruitMultiRecordResult<ZohoRecruitNoteId, ZohoRecruitChangeObjectResponseSuccessEntry, ZohoRecruitChangeObjectResponseErrorEntry>;
206
- export type ZohoRecruitDeleteNotesResponse = ZohoRecruitChangeObjectResponse;
207
- export type ZohoRecruitDeleteNotesFunction = (input: ZohoRecruitDeleteNotesRequest) => Promise<ZohoRecruitDeleteNotesResult>;
208
- export declare function deleteNotes(context: ZohoRecruitContext): (input: ZohoRecruitDeleteNotesRequest) => Promise<ZohoRecruitMultiRecordResult<string, ZohoRecruitChangeObjectResponseSuccessEntry<ZohoRecruitChangeObjectDetails>, ZohoRecruitChangeObjectResponseErrorEntry>>;
209
- export type ZohoRecruitGetNotesForRecordRequest = ZohoRecruitGetRelatedRecordsRequest;
210
- export type ZohoRecruitGetNotesForRecordResponse = ZohoPageResult<ZohoRecruitRecordNote>;
211
- export type ZohoRecruitGetNotesForRecordFunction = (input: ZohoRecruitGetNotesForRecordRequest) => Promise<ZohoRecruitGetNotesForRecordResponse>;
212
- export declare function getNotesForRecord(context: ZohoRecruitContext): ZohoRecruitGetNotesForRecordFunction;
213
- export type GetNotesForRecordPageFactory = FetchPageFactory<ZohoRecruitGetNotesForRecordRequest, ZohoRecruitGetNotesForRecordResponse>;
214
- export declare function getNotesForRecordPageFactory(context: ZohoRecruitContext): GetNotesForRecordPageFactory;
215
- export interface ZohoRecruitCreateNotesForRecordRequest extends ZohoRecruitModuleNameRef {
216
- readonly id: ZohoRecruitRecordId;
217
- readonly notes: ArrayOrValue<Omit<NewZohoRecruitNoteData, 'se_module' | 'Parent_Id'>>;
218
- }
219
- export type ZohoRecruitCreateNotesForRecordFunction = (input: ZohoRecruitCreateNotesForRecordRequest) => Promise<ZohoRecruitCreateNotesResult>;
220
- export declare function createNotesForRecord(context: ZohoRecruitContext): ZohoRecruitCreateNotesForRecordFunction;
200
+ export type ZohoRecruitGetEmailsForRecordRequest = ZohoRecruitGetRelatedRecordsRequest;
201
+ export type ZohoRecruitGetEmailsForRecordResponse = ZohoPageResult<ZohoRecruitRecordEmailMetadata>;
202
+ export type ZohoRecruitGetEmailsForRecordFunction = (input: ZohoRecruitGetEmailsForRecordRequest) => Promise<ZohoRecruitGetEmailsForRecordResponse>;
203
+ export declare function getEmailsForRecord(context: ZohoRecruitContext): ZohoRecruitGetEmailsForRecordFunction;
204
+ export type GetEmailsForRecordPageFactory = FetchPageFactory<ZohoRecruitGetEmailsForRecordRequest, ZohoRecruitGetEmailsForRecordResponse>;
205
+ export declare function getEmailsForRecordPageFactory(context: ZohoRecruitContext): GetEmailsForRecordPageFactory;
221
206
  export type ZohoRecruitExecuteRestApiFunctionRequest = ZohoRecruitExecuteRestApiFunctionNormalRequest | ZohoRecruitExecuteRestApiFunctionApiSpecificRequest;
222
207
  export interface ZohoRecruitExecuteRestApiFunctionNormalRequest {
223
208
  readonly functionName: ZohoRecruitRestFunctionApiName;
@@ -0,0 +1,34 @@
1
+ import { ZohoPageResult } from '../zoho.api.page';
2
+ import { FetchPageFactory } from '@dereekb/util/fetch';
3
+ import { ZohoRecruitContext } from './recruit.config';
4
+ import { ZohoRecruitModuleNameRef, ZohoRecruitRecordId } from './recruit';
5
+ import { ArrayOrValue } from '@dereekb/util';
6
+ import { ZohoRecruitMultiRecordResult, ZohoRecruitChangeObjectResponseSuccessEntry, ZohoRecruitChangeObjectResponseErrorEntry, ZohoRecruitChangeObjectResponse, ZohoRecruitGetRelatedRecordsRequest } from './recruit.api';
7
+ import { NewZohoRecruitNoteData, ZohoRecruitNoteId, ZohoRecruitRecordNote } from './recruit.notes';
8
+ export interface ZohoRecruitCreateNotesRequest {
9
+ readonly data: ZohoRecruitCreateNotesRequestEntry[];
10
+ }
11
+ export type ZohoRecruitCreateNotesResult = ZohoRecruitMultiRecordResult<ZohoRecruitCreateNotesRequestEntry, ZohoRecruitChangeObjectResponseSuccessEntry, ZohoRecruitChangeObjectResponseErrorEntry>;
12
+ export type ZohoRecruitCreateNotesRequestEntry = NewZohoRecruitNoteData;
13
+ export type ZohoRecruitCreateNotesResponse = ZohoRecruitChangeObjectResponse;
14
+ export type ZohoRecruitCreateNotesFunction = (input: ZohoRecruitCreateNotesRequest) => Promise<ZohoRecruitCreateNotesResult>;
15
+ export declare function createNotes(context: ZohoRecruitContext): (input: ZohoRecruitCreateNotesRequest) => Promise<ZohoRecruitMultiRecordResult<NewZohoRecruitNoteData, ZohoRecruitChangeObjectResponseSuccessEntry<import("./recruit").ZohoRecruitChangeObjectDetails>, ZohoRecruitChangeObjectResponseErrorEntry>>;
16
+ export interface ZohoRecruitDeleteNotesRequest {
17
+ readonly ids: ArrayOrValue<ZohoRecruitNoteId>;
18
+ }
19
+ export type ZohoRecruitDeleteNotesResult = ZohoRecruitMultiRecordResult<ZohoRecruitNoteId, ZohoRecruitChangeObjectResponseSuccessEntry, ZohoRecruitChangeObjectResponseErrorEntry>;
20
+ export type ZohoRecruitDeleteNotesResponse = ZohoRecruitChangeObjectResponse;
21
+ export type ZohoRecruitDeleteNotesFunction = (input: ZohoRecruitDeleteNotesRequest) => Promise<ZohoRecruitDeleteNotesResult>;
22
+ export declare function deleteNotes(context: ZohoRecruitContext): (input: ZohoRecruitDeleteNotesRequest) => Promise<ZohoRecruitMultiRecordResult<string, ZohoRecruitChangeObjectResponseSuccessEntry<import("./recruit").ZohoRecruitChangeObjectDetails>, ZohoRecruitChangeObjectResponseErrorEntry>>;
23
+ export type ZohoRecruitGetNotesForRecordRequest = ZohoRecruitGetRelatedRecordsRequest;
24
+ export type ZohoRecruitGetNotesForRecordResponse = ZohoPageResult<ZohoRecruitRecordNote>;
25
+ export type ZohoRecruitGetNotesForRecordFunction = (input: ZohoRecruitGetNotesForRecordRequest) => Promise<ZohoRecruitGetNotesForRecordResponse>;
26
+ export declare function getNotesForRecord(context: ZohoRecruitContext): ZohoRecruitGetNotesForRecordFunction;
27
+ export type GetNotesForRecordPageFactory = FetchPageFactory<ZohoRecruitGetNotesForRecordRequest, ZohoRecruitGetNotesForRecordResponse>;
28
+ export declare function getNotesForRecordPageFactory(context: ZohoRecruitContext): GetNotesForRecordPageFactory;
29
+ export interface ZohoRecruitCreateNotesForRecordRequest extends ZohoRecruitModuleNameRef {
30
+ readonly id: ZohoRecruitRecordId;
31
+ readonly notes: ArrayOrValue<Omit<NewZohoRecruitNoteData, 'se_module' | 'Parent_Id'>>;
32
+ }
33
+ export type ZohoRecruitCreateNotesForRecordFunction = (input: ZohoRecruitCreateNotesForRecordRequest) => Promise<ZohoRecruitCreateNotesResult>;
34
+ export declare function createNotesForRecord(context: ZohoRecruitContext): ZohoRecruitCreateNotesForRecordFunction;
@@ -0,0 +1,86 @@
1
+ import { ZohoRecruitContext } from './recruit.config';
2
+ import { ArrayOrValue, Maybe } from '@dereekb/util';
3
+ import { ZohoRecruitModuleNameRef, ZohoRecruitRecordId } from './recruit';
4
+ import { ZohoRecruitChangeObjectLikeResponse, ZohoRecruitChangeObjectLikeResponseSuccessEntryMeta, ZohoRecruitChangeObjectResponse, ZohoRecruitChangeObjectResponseErrorEntry, ZohoRecruitChangeObjectResponseSuccessEntry, ZohoRecruitGetRecordsPageFilter, ZohoRecruitMultiRecordResult, ZohoRecruitMultiRecordResultEntry } from './recruit.api';
5
+ import { ZohoRecruitTagData, ZohoRecruitTagName, ZohoRecruitTagWithObjectDetails } from './recruit.tags';
6
+ import { FetchPage, FetchPageFactoryOptions } from '@dereekb/util/fetch';
7
+ import { ZohoPageResult } from '../zoho.api.page';
8
+ export type ZohoRecruitCreateTagData = Pick<ZohoRecruitTagData, 'name'> & Partial<Pick<ZohoRecruitTagData, 'color_code'>>;
9
+ export interface ZohoRecruitCreateTagsRequest extends ZohoRecruitModuleNameRef {
10
+ readonly tags: ArrayOrValue<ZohoRecruitCreateTagData>;
11
+ }
12
+ export interface ZohoRecruitCreateTagsResponse {
13
+ readonly tags: ZohoRecruitChangeObjectResponse['data'];
14
+ }
15
+ export type ZohoRecruitCreateTagsResult = ZohoRecruitMultiRecordResult<ZohoRecruitCreateTagData, ZohoRecruitChangeObjectResponseSuccessEntry, ZohoRecruitChangeObjectResponseErrorEntry> & {
16
+ readonly duplicateErrorItems: ZohoRecruitMultiRecordResultEntry<ZohoRecruitCreateTagData, ZohoRecruitChangeObjectResponseErrorEntry>[];
17
+ readonly allErrorItems: ZohoRecruitMultiRecordResultEntry<ZohoRecruitCreateTagData, ZohoRecruitChangeObjectResponseErrorEntry>[];
18
+ };
19
+ export type ZohoRecruitCreateTagsFunction = (input: ZohoRecruitCreateTagsRequest) => Promise<ZohoRecruitCreateTagsResult>;
20
+ export declare function createTagsForModule(context: ZohoRecruitContext): (input: ZohoRecruitCreateTagsRequest) => Promise<{
21
+ errorItems: ZohoRecruitMultiRecordResultEntry<ZohoRecruitCreateTagData, ZohoRecruitChangeObjectResponseErrorEntry>[];
22
+ duplicateErrorItems: ZohoRecruitMultiRecordResultEntry<ZohoRecruitCreateTagData, ZohoRecruitChangeObjectResponseErrorEntry>[];
23
+ allErrorItems: ZohoRecruitMultiRecordResultEntry<ZohoRecruitCreateTagData, ZohoRecruitChangeObjectResponseErrorEntry>[];
24
+ successItems: ZohoRecruitMultiRecordResultEntry<ZohoRecruitCreateTagData, ZohoRecruitChangeObjectResponseSuccessEntry<import("./recruit").ZohoRecruitChangeObjectDetails>>[];
25
+ }>;
26
+ export interface ZohoRecruitGetTagsRequest extends ZohoRecruitModuleNameRef, ZohoRecruitGetRecordsPageFilter {
27
+ readonly my_tags?: string;
28
+ }
29
+ export interface ZohoRecruitGetTagsResponse extends Omit<ZohoPageResult<ZohoRecruitTagWithObjectDetails>, 'data'> {
30
+ readonly tags: ZohoRecruitTagWithObjectDetails[];
31
+ }
32
+ export type ZohoRecruitGetTagsResult = ZohoPageResult<ZohoRecruitTagWithObjectDetails>;
33
+ export type ZohoRecruitGetTagsFunction = (input: ZohoRecruitGetTagsRequest) => Promise<ZohoRecruitGetTagsResult>;
34
+ /**
35
+ * Returns the list of tags within a module.
36
+ *
37
+ * https://www.zoho.com/recruit/developer-guide/apiv2/get-tag-list.html
38
+ *
39
+ * @param context
40
+ * @returns
41
+ */
42
+ export declare function getTagsForModule(context: ZohoRecruitContext): ZohoRecruitGetTagsFunction;
43
+ export type GetTagsForModulePageFactory = (input: ZohoRecruitGetTagsRequest, options?: Maybe<FetchPageFactoryOptions<ZohoRecruitGetTagsRequest, ZohoRecruitGetTagsResult>>) => FetchPage<ZohoRecruitGetTagsRequest, ZohoRecruitGetTagsResult>;
44
+ export declare function getTagsForModulePageFactory(context: ZohoRecruitContext): GetTagsForModulePageFactory;
45
+ export interface ZohoRecruitAddTagsToRecordsRequest extends ZohoRecruitModuleNameRef {
46
+ /**
47
+ * Tag names to add to the records.
48
+ */
49
+ readonly tag_names: ArrayOrValue<ZohoRecruitTagName>;
50
+ /**
51
+ * Ids corresponding to the records in the module to add the tags to.
52
+ */
53
+ readonly ids: ArrayOrValue<ZohoRecruitRecordId>;
54
+ }
55
+ export interface ZohoRecruitAddTagsToRecordsResultDetails {
56
+ /**
57
+ * Record id that was updated
58
+ */
59
+ readonly id: ZohoRecruitRecordId;
60
+ /**
61
+ * Tag names that were added to the record
62
+ */
63
+ readonly tags: ZohoRecruitTagName[];
64
+ }
65
+ export interface ZohoRecruitAddTagsToRecordsSuccessEntry extends ZohoRecruitChangeObjectLikeResponseSuccessEntryMeta {
66
+ readonly details: ZohoRecruitAddTagsToRecordsResultDetails;
67
+ }
68
+ export type ZohoRecruitAddTagsToRecordsResponse = ZohoRecruitChangeObjectLikeResponse<ZohoRecruitAddTagsToRecordsSuccessEntry>;
69
+ /**
70
+ * Contains all the details of the error.
71
+ */
72
+ export type ZohoRecruitAddTagsToRecordsErrorEntryDetails = ZohoRecruitAddTagsToRecordsResultDetails;
73
+ export type ZohoRecruitAddTagsToRecordsErrorEntry = ZohoRecruitChangeObjectResponseErrorEntry & {
74
+ readonly details: ZohoRecruitAddTagsToRecordsErrorEntryDetails;
75
+ };
76
+ export type ZohoRecruitAddTagsToRecordsResult = ZohoRecruitMultiRecordResult<ZohoRecruitAddTagsToRecordsRequest, ZohoRecruitAddTagsToRecordsSuccessEntry, ZohoRecruitAddTagsToRecordsErrorEntry>;
77
+ export type ZohoRecruitAddTagsToRecordsFunction = (input: ZohoRecruitAddTagsToRecordsRequest) => Promise<ZohoRecruitAddTagsToRecordsResult>;
78
+ /**
79
+ * Associates one or more candidates with one or more job openings.
80
+ *
81
+ * https://www.zoho.com/recruit/developer-guide/apiv2/associate-candidate.html
82
+ *
83
+ * @param context
84
+ * @returns
85
+ */
86
+ export declare function addTagsToRecords(context: ZohoRecruitContext): ZohoRecruitAddTagsToRecordsFunction;
@@ -1,4 +1,4 @@
1
- import { CommaSeparatedString, ISO8601DateString, UniqueModelWithId, WebsiteUrl } from '@dereekb/util';
1
+ import { CommaSeparatedString, EmailAddress, ISO8601DateString, UniqueModelWithId, WebsiteUrl } from '@dereekb/util';
2
2
  /**
3
3
  * Zoho Recruit module name.
4
4
  *
@@ -13,6 +13,14 @@ export declare const ZOHO_RECRUIT_CANDIDATES_MODULE = "Candidates";
13
13
  * Job Openings module name
14
14
  */
15
15
  export declare const ZOHO_RECRUIT_JOB_OPENINGS_MODULE = "Job_Openings";
16
+ /**
17
+ * Notes module name
18
+ */
19
+ export declare const ZOHO_RECRUIT_NOTES_MODULE = "Notes";
20
+ /**
21
+ * Emails module name
22
+ */
23
+ export declare const ZOHO_RECRUIT_EMAILS_MODULE = "Emails";
16
24
  /**
17
25
  * Contains a reference to a module.
18
26
  */
@@ -134,54 +142,6 @@ export type ZohoRecruitRecord = UniqueModelWithId & ZohoRecruitRecordFieldsData;
134
142
  * Returns true if it is a valid ZohoRecruitValidUrl.
135
143
  */
136
144
  export declare const isZohoRecruitValidUrl: (input: WebsiteUrl) => input is ZohoRecruitValidUrl;
137
- /**
138
- * Update details returned by the server for an updated record.
139
- *
140
- * @deprecated use ZohoRecruitChangeObjectDetails instead.
141
- */
142
- export type ZohoRecruitRecordUpdateDetails = ZohoRecruitChangeObjectDetails;
143
- export type ZohoRecruitNoteId = string;
144
- export interface ZohoRecruitNoteAction {
145
- $is_system_action: boolean;
146
- }
147
- export type ZohoRecruitNoteSourceName = 'NORMAL_USER';
148
- export type ZohoRecruitNoteSourceType = number;
149
- export interface ZohoRecruitNoteSource {
150
- name: ZohoRecruitNoteSourceName;
151
- type: ZohoRecruitNoteSourceType;
152
- }
153
- export type ZohoRecruitNoteOwnerData = ZohoRecruitReferenceData;
154
- export interface ZohoRecruitNoteData {
155
- Note_Title: string;
156
- Note_Content: string;
157
- Parent_Id: ZohoRecruitParentReferenceData;
158
- Created_Time: ISO8601DateString;
159
- Modified_Time: ISO8601DateString;
160
- $attachments: null;
161
- $is_edit_allowed: boolean;
162
- $editable: boolean;
163
- $type_id: ZohoRecruitTypeId;
164
- $is_delete_allowed: boolean;
165
- $note_action: ZohoRecruitNoteAction;
166
- $source: ZohoRecruitNoteSource;
167
- $se_module: ZohoRecruitModuleName;
168
- $is_shared_to_client: boolean;
169
- Note_Owner: ZohoRecruitNoteOwnerData;
170
- Created_By: ZohoRecruitCreatedByData;
171
- Modified_By: ZohoRecruitModifiedByData;
172
- $size: ZohoRecruitNoteFileSize | null;
173
- $voice_note: boolean;
174
- $status: ZohoRecruitNoteStatus;
175
- }
176
- export interface NewZohoRecruitNoteData extends Pick<ZohoRecruitNoteData, 'Note_Title' | 'Note_Content'> {
177
- Parent_Id: Pick<ZohoRecruitParentReferenceData, 'id'> | ZohoRecruitId;
178
- se_module: ZohoRecruitModuleName;
179
- }
180
- export type ZohoRecruitNoteStatus = string;
181
- export type ZohoRecruitNoteFileSize = number;
182
- export interface ZohoRecruitNote extends ZohoRecruitNoteData, UniqueModelWithId {
183
- }
184
- export type ZohoRecruitRecordNote = ZohoRecruitNote;
185
145
  /**
186
146
  * The posting title of a job opening.
187
147
  */
@@ -191,6 +151,41 @@ export type ZohoRecruitJobOpeningPostingTitle = string;
191
151
  */
192
152
  export type ZohoRecruitCandidateStatus = string;
193
153
  /**
194
- * @deprecated use NewZohoRecruitNewNoteData instead.
154
+ * Metadata for a record's email.
155
+ */
156
+ export interface ZohoRecruitRecordEmailMetadata {
157
+ /**
158
+ * Whether or not an attachment is present.
159
+ */
160
+ attachment: boolean;
161
+ /**
162
+ * The subject of the email.
163
+ */
164
+ subject: string;
165
+ /**
166
+ * The email address the email was sent to.
167
+ */
168
+ to: EmailAddress;
169
+ /**
170
+ * The email address the email was sent from.
171
+ */
172
+ from: EmailAddress;
173
+ /**
174
+ * The date the email was sent.
175
+ */
176
+ sent_on: ISO8601DateString;
177
+ /**
178
+ * The status of the email.
179
+ */
180
+ status: ZohoRecruitRecordEmailMetadataStatus[];
181
+ }
182
+ export type ZohoRecruitRecordEmailMetadataStatusType = 'sent' | string;
183
+ export interface ZohoRecruitRecordEmailMetadataStatus {
184
+ type: ZohoRecruitRecordEmailMetadataStatusType;
185
+ }
186
+ /**
187
+ * Update details returned by the server for an updated record.
188
+ *
189
+ * @deprecated use ZohoRecruitChangeObjectDetails instead.
195
190
  */
196
- export type NewZohoRecruitNewNoteData = NewZohoRecruitNoteData;
191
+ export type ZohoRecruitRecordUpdateDetails = ZohoRecruitChangeObjectDetails;
@@ -0,0 +1,48 @@
1
+ import { ISO8601DateString, UniqueModelWithId } from '@dereekb/util';
2
+ import { ZohoRecruitReferenceData, ZohoRecruitParentReferenceData, ZohoRecruitTypeId, ZohoRecruitModuleName, ZohoRecruitCreatedByData, ZohoRecruitModifiedByData, ZohoRecruitId } from './recruit';
3
+ export type ZohoRecruitNoteId = string;
4
+ export interface ZohoRecruitNoteAction {
5
+ $is_system_action: boolean;
6
+ }
7
+ export type ZohoRecruitNoteSourceName = 'NORMAL_USER';
8
+ export type ZohoRecruitNoteSourceType = number;
9
+ export interface ZohoRecruitNoteSource {
10
+ name: ZohoRecruitNoteSourceName;
11
+ type: ZohoRecruitNoteSourceType;
12
+ }
13
+ export type ZohoRecruitNoteOwnerData = ZohoRecruitReferenceData;
14
+ export interface ZohoRecruitNoteData {
15
+ Note_Title: string;
16
+ Note_Content: string;
17
+ Parent_Id: ZohoRecruitParentReferenceData;
18
+ Created_Time: ISO8601DateString;
19
+ Modified_Time: ISO8601DateString;
20
+ $attachments: null;
21
+ $is_edit_allowed: boolean;
22
+ $editable: boolean;
23
+ $type_id: ZohoRecruitTypeId;
24
+ $is_delete_allowed: boolean;
25
+ $note_action: ZohoRecruitNoteAction;
26
+ $source: ZohoRecruitNoteSource;
27
+ $se_module: ZohoRecruitModuleName;
28
+ $is_shared_to_client: boolean;
29
+ Note_Owner: ZohoRecruitNoteOwnerData;
30
+ Created_By: ZohoRecruitCreatedByData;
31
+ Modified_By: ZohoRecruitModifiedByData;
32
+ $size: ZohoRecruitNoteFileSize | null;
33
+ $voice_note: boolean;
34
+ $status: ZohoRecruitNoteStatus;
35
+ }
36
+ export interface NewZohoRecruitNoteData extends Pick<ZohoRecruitNoteData, 'Note_Title' | 'Note_Content'> {
37
+ Parent_Id: Pick<ZohoRecruitParentReferenceData, 'id'> | ZohoRecruitId;
38
+ se_module: ZohoRecruitModuleName;
39
+ }
40
+ export type ZohoRecruitNoteStatus = string;
41
+ export type ZohoRecruitNoteFileSize = number;
42
+ export interface ZohoRecruitNote extends ZohoRecruitNoteData, UniqueModelWithId {
43
+ }
44
+ export type ZohoRecruitRecordNote = ZohoRecruitNote;
45
+ /**
46
+ * @deprecated use NewZohoRecruitNewNoteData instead.
47
+ */
48
+ export type NewZohoRecruitNewNoteData = NewZohoRecruitNoteData;
@@ -0,0 +1,34 @@
1
+ import { HexColorCode } from '@dereekb/util';
2
+ import { ZohoRecruitChangeObjectDetails } from './recruit';
3
+ export type ZohoRecruitTagId = string;
4
+ /**
5
+ * Name of a tag.
6
+ *
7
+ * Max length of 25 characters.
8
+ */
9
+ export type ZohoRecruitTagName = string;
10
+ /**
11
+ * Maximum length of ZohoRecruitTagName
12
+ */
13
+ export declare const ZOHO_RECRUIT_TAG_NAME_MAX_LENGTH = 25;
14
+ /**
15
+ * Hex color code of a tag
16
+ */
17
+ export type ZohoRecruitTagColorCode = HexColorCode;
18
+ /**
19
+ * The color and name of a Tag in Zoho Recruit.
20
+ */
21
+ export interface ZohoRecruitTagData {
22
+ color_code: ZohoRecruitTagColorCode;
23
+ name: ZohoRecruitTagName;
24
+ }
25
+ /**
26
+ * Includes the id of the Tag along with other tag data.
27
+ */
28
+ export interface ZohoRecruitTag extends ZohoRecruitTagData {
29
+ id: ZohoRecruitTagId;
30
+ }
31
+ /**
32
+ * ZohoRecruitTag that also has ZohoRecruitChangeObjectDetails
33
+ */
34
+ export type ZohoRecruitTagWithObjectDetails = ZohoRecruitTag & ZohoRecruitChangeObjectDetails;