bexio 0.7.2 → 3.0.1

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.
Files changed (171) hide show
  1. package/Readme.md +20 -119
  2. package/coverage/base.css +224 -0
  3. package/coverage/block-navigation.js +87 -0
  4. package/coverage/favicon.png +0 -0
  5. package/coverage/index.html +146 -0
  6. package/coverage/prettify.css +1 -0
  7. package/coverage/prettify.js +2 -0
  8. package/coverage/sort-arrow-sprite.png +0 -0
  9. package/coverage/sorter.js +196 -0
  10. package/jest-html-reporters-attach/index.js +58 -0
  11. package/jest-html-reporters-attach/result.js +1 -0
  12. package/jest_html_reporters.html +1 -0
  13. package/junit.xml +155 -0
  14. package/lib/index.d.ts +9 -103
  15. package/lib/index.js +55 -237
  16. package/lib/index.js.map +1 -1
  17. package/lib/interfaces/BillsStatic.js +1 -0
  18. package/lib/interfaces/BillsStatic.js.map +1 -1
  19. package/lib/interfaces/BusinessActivitiesStatic.js +1 -0
  20. package/lib/interfaces/BusinessActivitiesStatic.js.map +1 -1
  21. package/lib/interfaces/CalendarStatic.js +1 -0
  22. package/lib/interfaces/CalendarStatic.js.map +1 -1
  23. package/lib/interfaces/ContactGroupsStatic.js +1 -0
  24. package/lib/interfaces/ContactGroupsStatic.js.map +1 -1
  25. package/lib/interfaces/ContactRelationsStatic.js +1 -0
  26. package/lib/interfaces/ContactRelationsStatic.js.map +1 -1
  27. package/lib/interfaces/ContactSectorsStatic.js +1 -0
  28. package/lib/interfaces/ContactSectorsStatic.js.map +1 -1
  29. package/lib/interfaces/ContactTypesStatic.js +1 -0
  30. package/lib/interfaces/ContactTypesStatic.js.map +1 -1
  31. package/lib/interfaces/ContactsStatic.js +1 -0
  32. package/lib/interfaces/ContactsStatic.js.map +1 -1
  33. package/lib/interfaces/ExpensesStatic.js +1 -0
  34. package/lib/interfaces/ExpensesStatic.js.map +1 -1
  35. package/lib/interfaces/InvoicesStatic.d.ts +100 -0
  36. package/lib/interfaces/InvoicesStatic.js +25 -0
  37. package/lib/interfaces/InvoicesStatic.js.map +1 -0
  38. package/lib/interfaces/ItemsStatic.d.ts +120 -0
  39. package/lib/interfaces/ItemsStatic.js +47 -0
  40. package/lib/interfaces/ItemsStatic.js.map +1 -0
  41. package/lib/interfaces/NotesStatic.js +1 -0
  42. package/lib/interfaces/NotesStatic.js.map +1 -1
  43. package/lib/interfaces/OrdersStatic.js +1 -0
  44. package/lib/interfaces/OrdersStatic.js.map +1 -1
  45. package/lib/interfaces/PositionStatic.d.ts +35 -0
  46. package/lib/interfaces/PositionStatic.js +3 -0
  47. package/lib/interfaces/PositionStatic.js.map +1 -0
  48. package/lib/interfaces/ProjectStatusesStatic.js +1 -0
  49. package/lib/interfaces/ProjectStatusesStatic.js.map +1 -1
  50. package/lib/interfaces/ProjectTypesStatic.js +1 -0
  51. package/lib/interfaces/ProjectTypesStatic.js.map +1 -1
  52. package/lib/interfaces/ProjectsStatic.js +1 -0
  53. package/lib/interfaces/ProjectsStatic.js.map +1 -1
  54. package/lib/interfaces/SalesOrderManagementStatic.js +1 -0
  55. package/lib/interfaces/SalesOrderManagementStatic.js.map +1 -1
  56. package/lib/interfaces/TimetrackingStatusesStatic.js +1 -0
  57. package/lib/interfaces/TimetrackingStatusesStatic.js.map +1 -1
  58. package/lib/interfaces/TimetrackingsStatic.js +1 -0
  59. package/lib/interfaces/TimetrackingsStatic.js.map +1 -1
  60. package/lib/interfaces/UsersStatic.js +1 -0
  61. package/lib/interfaces/UsersStatic.js.map +1 -1
  62. package/lib/resources/BaseCrud.d.ts +13 -24
  63. package/lib/resources/BaseCrud.js +37 -44
  64. package/lib/resources/BaseCrud.js.map +1 -1
  65. package/lib/resources/Bills.d.ts +5 -6
  66. package/lib/resources/Bills.js +14 -17
  67. package/lib/resources/Bills.js.map +1 -1
  68. package/lib/resources/BusinessActivities.d.ts +1 -2
  69. package/lib/resources/BusinessActivities.js +2 -3
  70. package/lib/resources/BusinessActivities.js.map +1 -1
  71. package/lib/resources/ContactGroups.d.ts +1 -2
  72. package/lib/resources/ContactGroups.js +3 -4
  73. package/lib/resources/ContactGroups.js.map +1 -1
  74. package/lib/resources/ContactRelations.d.ts +1 -2
  75. package/lib/resources/ContactRelations.js +2 -3
  76. package/lib/resources/ContactRelations.js.map +1 -1
  77. package/lib/resources/ContactSectors.d.ts +1 -2
  78. package/lib/resources/ContactSectors.js +6 -7
  79. package/lib/resources/ContactSectors.js.map +1 -1
  80. package/lib/resources/ContactTypes.d.ts +1 -2
  81. package/lib/resources/ContactTypes.js +6 -7
  82. package/lib/resources/ContactTypes.js.map +1 -1
  83. package/lib/resources/Contacts.d.ts +1 -2
  84. package/lib/resources/Contacts.js +2 -3
  85. package/lib/resources/Contacts.js.map +1 -1
  86. package/lib/resources/Expenses.d.ts +2 -3
  87. package/lib/resources/Expenses.js +4 -5
  88. package/lib/resources/Expenses.js.map +1 -1
  89. package/lib/resources/Invoices.d.ts +6 -0
  90. package/lib/resources/Invoices.js +27 -0
  91. package/lib/resources/Invoices.js.map +1 -0
  92. package/lib/resources/Items.d.ts +5 -0
  93. package/lib/resources/Items.js +13 -0
  94. package/lib/resources/Items.js.map +1 -0
  95. package/lib/resources/Orders.d.ts +1 -2
  96. package/lib/resources/Orders.js +2 -3
  97. package/lib/resources/Orders.js.map +1 -1
  98. package/lib/resources/Payments.d.ts +1 -2
  99. package/lib/resources/Payments.js +2 -11
  100. package/lib/resources/Payments.js.map +1 -1
  101. package/lib/resources/ProjectStatuses.d.ts +1 -2
  102. package/lib/resources/ProjectStatuses.js +2 -3
  103. package/lib/resources/ProjectStatuses.js.map +1 -1
  104. package/lib/resources/ProjectTypes.d.ts +1 -2
  105. package/lib/resources/ProjectTypes.js +6 -7
  106. package/lib/resources/ProjectTypes.js.map +1 -1
  107. package/lib/resources/Projects.d.ts +1 -2
  108. package/lib/resources/Projects.js +2 -3
  109. package/lib/resources/Projects.js.map +1 -1
  110. package/lib/resources/TimetrackingStatuses.d.ts +1 -2
  111. package/lib/resources/TimetrackingStatuses.js +2 -3
  112. package/lib/resources/TimetrackingStatuses.js.map +1 -1
  113. package/lib/resources/Timetrackings.d.ts +1 -2
  114. package/lib/resources/Timetrackings.js +2 -3
  115. package/lib/resources/Timetrackings.js.map +1 -1
  116. package/lib/resources/Users.d.ts +1 -2
  117. package/lib/resources/Users.js +2 -3
  118. package/lib/resources/Users.js.map +1 -1
  119. package/lib/tests/BaseCrud.test.js +290 -0
  120. package/lib/tests/BaseCrud.test.js.map +1 -0
  121. package/lib/tests/Bills.test.js +93 -143
  122. package/lib/tests/Bills.test.js.map +1 -1
  123. package/lib/tests/BusinessActivities.test.js +14 -85
  124. package/lib/tests/BusinessActivities.test.js.map +1 -1
  125. package/lib/tests/ContactGroups.test.js +14 -92
  126. package/lib/tests/ContactGroups.test.js.map +1 -1
  127. package/lib/tests/ContactRelations.test.js +14 -87
  128. package/lib/tests/ContactRelations.test.js.map +1 -1
  129. package/lib/tests/ContactSectors.test.js +14 -124
  130. package/lib/tests/ContactSectors.test.js.map +1 -1
  131. package/lib/tests/ContactTypes.test.js +14 -118
  132. package/lib/tests/ContactTypes.test.js.map +1 -1
  133. package/lib/tests/Contacts.test.js +23 -0
  134. package/lib/tests/Contacts.test.js.map +1 -0
  135. package/lib/tests/Expenses.test.js +14 -98
  136. package/lib/tests/Expenses.test.js.map +1 -1
  137. package/lib/tests/Invoices.test.d.ts +1 -0
  138. package/lib/tests/Invoices.test.js +23 -0
  139. package/lib/tests/Invoices.test.js.map +1 -0
  140. package/lib/tests/Items.test.d.ts +1 -0
  141. package/lib/tests/Items.test.js +23 -0
  142. package/lib/tests/Items.test.js.map +1 -0
  143. package/lib/tests/Orders.test.js +14 -127
  144. package/lib/tests/Orders.test.js.map +1 -1
  145. package/lib/tests/Payments.test.js +15 -90
  146. package/lib/tests/Payments.test.js.map +1 -1
  147. package/lib/tests/ProjectStatuses.test.js +14 -123
  148. package/lib/tests/ProjectStatuses.test.js.map +1 -1
  149. package/lib/tests/ProjectTypes.test.js +14 -119
  150. package/lib/tests/ProjectTypes.test.js.map +1 -1
  151. package/lib/tests/Projects.test.js +14 -91
  152. package/lib/tests/Projects.test.js.map +1 -1
  153. package/lib/tests/TimetrackingStatuses.test.js +14 -123
  154. package/lib/tests/TimetrackingStatuses.test.js.map +1 -1
  155. package/lib/tests/Timetrackings.test.js +14 -102
  156. package/lib/tests/Timetrackings.test.js.map +1 -1
  157. package/lib/tests/Users.test.js +14 -125
  158. package/lib/tests/Users.test.js.map +1 -1
  159. package/package.json +45 -29
  160. package/lib/constants/Scopes.d.ts +0 -32
  161. package/lib/constants/Scopes.js +0 -36
  162. package/lib/constants/Scopes.js.map +0 -1
  163. package/lib/libs/OAuth2.d.ts +0 -122
  164. package/lib/libs/OAuth2.js +0 -202
  165. package/lib/libs/OAuth2.js.map +0 -1
  166. package/lib/tests/Authentication.test.js +0 -83
  167. package/lib/tests/Authentication.test.js.map +0 -1
  168. package/lib/tests/Contact.test.js +0 -103
  169. package/lib/tests/Contact.test.js.map +0 -1
  170. /package/lib/tests/{Authentication.test.d.ts → BaseCrud.test.d.ts} +0 -0
  171. /package/lib/tests/{Contact.test.d.ts → Contacts.test.d.ts} +0 -0
@@ -13,10 +13,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const BaseCrud_1 = __importDefault(require("./BaseCrud"));
16
- const Scopes_1 = __importDefault(require("../constants/Scopes"));
17
16
  class ProjectTypes extends BaseCrud_1.default {
18
- constructor(bexioAuth) {
19
- super(bexioAuth, "/pr_project_type", Scopes_1.default.PROJECT_SHOW, Scopes_1.default.PROJECT_EDIT);
17
+ constructor(apiToken) {
18
+ super(apiToken, "/pr_project_type");
20
19
  }
21
20
  /**
22
21
  * Not implemented by Bexio yet
@@ -27,7 +26,7 @@ class ProjectTypes extends BaseCrud_1.default {
27
26
  */
28
27
  create(ressource) {
29
28
  return __awaiter(this, void 0, void 0, function* () {
30
- throw new Error('not implemented by Bexio yet');
29
+ throw new Error("not implemented by Bexio yet");
31
30
  });
32
31
  }
33
32
  /**
@@ -40,7 +39,7 @@ class ProjectTypes extends BaseCrud_1.default {
40
39
  */
41
40
  edit(id, ressource) {
42
41
  return __awaiter(this, void 0, void 0, function* () {
43
- throw new Error('not implemented by Bexio yet');
42
+ throw new Error("not implemented by Bexio yet");
44
43
  });
45
44
  }
46
45
  /**
@@ -53,7 +52,7 @@ class ProjectTypes extends BaseCrud_1.default {
53
52
  */
54
53
  overwrite(id, ressource) {
55
54
  return __awaiter(this, void 0, void 0, function* () {
56
- throw new Error('not implemented by Bexio yet');
55
+ throw new Error("not implemented by Bexio yet");
57
56
  });
58
57
  }
59
58
  /**
@@ -65,7 +64,7 @@ class ProjectTypes extends BaseCrud_1.default {
65
64
  */
66
65
  delete(id) {
67
66
  return __awaiter(this, void 0, void 0, function* () {
68
- throw new Error('not implemented by Bexio yet');
67
+ throw new Error("not implemented by Bexio yet");
69
68
  });
70
69
  }
71
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTypes.js","sourceRoot":"","sources":["../../src/resources/ProjectTypes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,0DAAkC;AAElC,iEAAyC;AAEzC,MAAqB,YAAa,SAAQ,kBAOzC;IACC,YAAY,SAAiB;QAC3B,KAAK,CAAC,SAAS,EAAE,kBAAkB,EAAE,gBAAM,CAAC,YAAY,EAAE,gBAAM,CAAC,YAAY,CAAC,CAAC;IACjF,CAAC;IAGD;;;;;;OAMG;IACU,MAAM,CAAC,SAAa;;YAC/B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjD,CAAC;KAAA;IAED;;;;;;;OAOG;IACU,IAAI,CAAC,EAAU,EAAE,SAAa;;YACzC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjD,CAAC;KAAA;IAED;;;;;;;OAOG;IACU,SAAS,CAAC,EAAU,EAAE,SAAa;;YAC9C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjD,CAAC;KAAA;IAED;;;;;;OAMG;IACU,MAAM,CAAC,EAAU;;YAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjD,CAAC;KAAA;CACF;AA1DD,+BA0DC"}
1
+ {"version":3,"file":"ProjectTypes.js","sourceRoot":"","sources":["../../src/resources/ProjectTypes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,0DAAkC;AAElC,MAAqB,YAAa,SAAQ,kBAOzC;IACC,YAAY,QAAgB;QAC1B,KAAK,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACU,MAAM,CAAC,SAAa;;YAC/B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;IAED;;;;;;;OAOG;IACU,IAAI,CACf,EAAU,EACV,SAAa;;YAEb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;IAED;;;;;;;OAOG;IACU,SAAS,CACpB,EAAU,EACV,SAAa;;YAEb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;IAED;;;;;;OAMG;IACU,MAAM,CAAC,EAAU;;YAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;CACF;AA/DD,+BA+DC"}
@@ -1,6 +1,5 @@
1
1
  import { ProjectsStatic } from "../interfaces/ProjectsStatic";
2
2
  import BaseCrud from "./BaseCrud";
3
- import OAuth2 from "../libs/OAuth2";
4
3
  export default class Projects extends BaseCrud<ProjectsStatic.Project, ProjectsStatic.Project, ProjectsStatic.Project, ProjectsStatic.ProjectSearchParameters, ProjectsStatic.ProjectCreate, ProjectsStatic.ProjectOverwrite> {
5
- constructor(bexioAuth: OAuth2);
4
+ constructor(apiToken: string);
6
5
  }
@@ -4,10 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const BaseCrud_1 = __importDefault(require("./BaseCrud"));
7
- const Scopes_1 = __importDefault(require("../constants/Scopes"));
8
7
  class Projects extends BaseCrud_1.default {
9
- constructor(bexioAuth) {
10
- super(bexioAuth, "/pr_project", Scopes_1.default.PROJECT_SHOW, Scopes_1.default.PROJECT_EDIT);
8
+ constructor(apiToken) {
9
+ super(apiToken, "/pr_project");
11
10
  }
12
11
  }
13
12
  exports.default = Projects;
@@ -1 +1 @@
1
- {"version":3,"file":"Projects.js","sourceRoot":"","sources":["../../src/resources/Projects.ts"],"names":[],"mappings":";;;;;AACA,0DAAkC;AAElC,iEAAyC;AAEzC,MAAqB,QAAS,SAAQ,kBAOrC;IACC,YAAY,SAAiB;QAC3B,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,gBAAM,CAAC,YAAY,EAAE,gBAAM,CAAC,YAAY,CAAC,CAAC;IAC5E,CAAC;CACF;AAXD,2BAWC"}
1
+ {"version":3,"file":"Projects.js","sourceRoot":"","sources":["../../src/resources/Projects.ts"],"names":[],"mappings":";;;;;AACA,0DAAkC;AAElC,MAAqB,QAAS,SAAQ,kBAOrC;IACC,YAAY,QAAgB;QAC1B,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACjC,CAAC;CACF;AAXD,2BAWC"}
@@ -1,8 +1,7 @@
1
1
  import BaseCrud from "./BaseCrud";
2
- import OAuth2 from "../libs/OAuth2";
3
2
  import { TimetrackingStatusesStatic } from "../interfaces/TimetrackingStatusesStatic";
4
3
  export default class TimetrackingStatuses extends BaseCrud<TimetrackingStatusesStatic.TimetrackingStatus, TimetrackingStatusesStatic.TimetrackingStatus, TimetrackingStatusesStatic.TimetrackingStatus, TimetrackingStatusesStatic.TimetrackingStatusesSearchparameters, {}, {}> {
5
- constructor(bexioAuth: OAuth2);
4
+ constructor(apiToken: string);
6
5
  /**
7
6
  * Not implemented by Bexio yet
8
7
  *
@@ -13,10 +13,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const BaseCrud_1 = __importDefault(require("./BaseCrud"));
16
- const __1 = require("..");
17
16
  class TimetrackingStatuses extends BaseCrud_1.default {
18
- constructor(bexioAuth) {
19
- super(bexioAuth, "/timesheet_status", __1.Scopes.MONITORING_SHOW, __1.Scopes.MONITORING_EDIT);
17
+ constructor(apiToken) {
18
+ super(apiToken, "/timesheet_status");
20
19
  }
21
20
  /**
22
21
  * Not implemented by Bexio yet
@@ -1 +1 @@
1
- {"version":3,"file":"TimetrackingStatuses.js","sourceRoot":"","sources":["../../src/resources/TimetrackingStatuses.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAAkC;AAElC,0BAA4B;AAG5B,MAAqB,oBAAqB,SAAQ,kBAOjD;IACC,YAAY,SAAiB;QAC3B,KAAK,CACH,SAAS,EACT,mBAAmB,EACnB,UAAM,CAAC,eAAe,EACtB,UAAM,CAAC,eAAe,CACvB,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACU,SAAS,CACpB,EAAU,EACV,SAAa;;YAEb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;IAED;;;;;;;OAOG;IACU,IAAI,CACf,EAAU,EACV,SAAa;;YAEb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;IAED;;;;;;OAMG;IACU,MAAM,CAAC,SAAa;;YAG/B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;IAED;;;;;;OAMG;IACU,MAAM,CAAC,EAAU;;YAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;CACF;AAtED,uCAsEC"}
1
+ {"version":3,"file":"TimetrackingStatuses.js","sourceRoot":"","sources":["../../src/resources/TimetrackingStatuses.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAAkC;AAGlC,MAAqB,oBAAqB,SAAQ,kBAOjD;IACC,YAAY,QAAgB;QAC1B,KAAK,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;OAOG;IACU,SAAS,CACpB,EAAU,EACV,SAAa;;YAEb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;IAED;;;;;;;OAOG;IACU,IAAI,CACf,EAAU,EACV,SAAa;;YAEb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;IAED;;;;;;OAMG;IACU,MAAM,CAAC,SAAa;;YAG/B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;IAED;;;;;;OAMG;IACU,MAAM,CAAC,EAAU;;YAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;CACF;AAjED,uCAiEC"}
@@ -1,8 +1,7 @@
1
1
  import BaseCrud from "./BaseCrud";
2
2
  import { TimetrackingsStatic } from "../interfaces/TimetrackingsStatic";
3
- import OAuth2 from "../libs/OAuth2";
4
3
  export default class Timetrackings extends BaseCrud<TimetrackingsStatic.TimetrackingsSmall, TimetrackingsStatic.TimetrackingsFull, TimetrackingsStatic.TimetrackingsSmall, TimetrackingsStatic.TimetrackingsSearchParameters, TimetrackingsStatic.TimetrackingsCreate, {}> {
5
- constructor(bexioAuth: OAuth2);
4
+ constructor(apiToken: string);
6
5
  /**
7
6
  * Not implemented by Bexio yet
8
7
  *
@@ -13,10 +13,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const BaseCrud_1 = __importDefault(require("./BaseCrud"));
16
- const __1 = require("..");
17
16
  class Timetrackings extends BaseCrud_1.default {
18
- constructor(bexioAuth) {
19
- super(bexioAuth, "/timesheet", __1.Scopes.MONITORING_SHOW, __1.Scopes.MONITORING_EDIT);
17
+ constructor(apiToken) {
18
+ super(apiToken, "/timesheet");
20
19
  }
21
20
  /**
22
21
  * Not implemented by Bexio yet
@@ -1 +1 @@
1
- {"version":3,"file":"Timetrackings.js","sourceRoot":"","sources":["../../src/resources/Timetrackings.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAAkC;AAGlC,0BAA4B;AAE5B,MAAqB,aAAc,SAAQ,kBAO1C;IACC,YAAY,SAAiB;QAC3B,KAAK,CACH,SAAS,EACT,YAAY,EACZ,UAAM,CAAC,eAAe,EACtB,UAAM,CAAC,eAAe,CACvB,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACU,SAAS,CAAC,EAAU,EAAC,SAAa;;YAC7C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;CACF;AA5BD,gCA4BC"}
1
+ {"version":3,"file":"Timetrackings.js","sourceRoot":"","sources":["../../src/resources/Timetrackings.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAAkC;AAGlC,MAAqB,aAAc,SAAQ,kBAO1C;IACC,YAAY,QAAgB;QAC1B,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;;OAOG;IACU,SAAS,CACpB,EAAU,EACV,SAAa;;YAEb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;CACF;AA1BD,gCA0BC"}
@@ -1,8 +1,7 @@
1
1
  import BaseCrud from "./BaseCrud";
2
- import OAuth2 from "../libs/OAuth2";
3
2
  import { UsersStatic } from "../interfaces/UsersStatic";
4
3
  export default class Users extends BaseCrud<UsersStatic.UserSmall, UsersStatic.UserFull, UsersStatic.UserSmall, UsersStatic.UsersSearchparameters, {}, {}> {
5
- constructor(bexioAuth: OAuth2);
4
+ constructor(apiToken: string);
6
5
  /**
7
6
  * Not implemented by Bexio yet
8
7
  *
@@ -13,10 +13,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const BaseCrud_1 = __importDefault(require("./BaseCrud"));
16
- const __1 = require("..");
17
16
  class Users extends BaseCrud_1.default {
18
- constructor(bexioAuth) {
19
- super(bexioAuth, "/user", __1.Scopes.GENERAL, __1.Scopes.GENERAL);
17
+ constructor(apiToken) {
18
+ super(apiToken, "/user");
20
19
  }
21
20
  /**
22
21
  * Not implemented by Bexio yet
@@ -1 +1 @@
1
- {"version":3,"file":"Users.js","sourceRoot":"","sources":["../../src/resources/Users.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAAkC;AAElC,0BAA4B;AAG5B,MAAqB,KAAM,SAAQ,kBAOlC;IACC,YAAY,SAAiB;QAC3B,KAAK,CACH,SAAS,EACT,OAAO,EACP,UAAM,CAAC,OAAO,EACd,UAAM,CAAC,OAAO,CACf,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACU,SAAS,CACpB,EAAU,EACV,SAAa;;YAEb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;IAED;;;;;;;OAOG;IACU,IAAI,CACf,EAAU,EACV,SAAa;;YAEb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;IAED;;;;;;OAMG;IACU,MAAM,CAAC,SAAa;;YAG/B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;IAED;;;;;;OAMG;IACU,MAAM,CAAC,EAAU;;YAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;CACF;AAtED,wBAsEC"}
1
+ {"version":3,"file":"Users.js","sourceRoot":"","sources":["../../src/resources/Users.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAAkC;AAGlC,MAAqB,KAAM,SAAQ,kBAOlC;IACC,YAAY,QAAgB;QAC1B,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACU,SAAS,CACpB,EAAU,EACV,SAAa;;YAEb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;IAED;;;;;;;OAOG;IACU,IAAI,CAAC,EAAU,EAAE,SAAa;;YACzC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;IAED;;;;;;OAMG;IACU,MAAM,CAAC,SAAa;;YAC/B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;IAED;;;;;;OAMG;IACU,MAAM,CAAC,EAAU;;YAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;KAAA;CACF;AA5DD,wBA4DC"}
@@ -0,0 +1,290 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const axios_1 = __importDefault(require("axios"));
16
+ const chance_1 = __importDefault(require("chance"));
17
+ const BaseCrud_1 = __importDefault(require("../resources/BaseCrud"));
18
+ const requestSpy = jest.spyOn(axios_1.default, "request");
19
+ const seedgenerator = new chance_1.default();
20
+ const seed = seedgenerator.hash();
21
+ console.log(`using chance seed ${seed}`);
22
+ const chance = new chance_1.default(seed);
23
+ requestSpy.mockResolvedValue({});
24
+ describe("BaseCrud", () => {
25
+ afterEach(() => {
26
+ requestSpy.mockClear();
27
+ });
28
+ describe("list", () => {
29
+ const endpoint = chance.string();
30
+ const apiToken = chance.string();
31
+ const baseCrud = new BaseCrud_1.default(apiToken, `/${endpoint}`);
32
+ it("Should be a GET request", () => __awaiter(void 0, void 0, void 0, function* () {
33
+ yield baseCrud.list();
34
+ const axiosParams = requestSpy.mock.calls[0][0];
35
+ expect(axiosParams.method).toBe("GET");
36
+ }));
37
+ it("Should use the given endpoint", () => __awaiter(void 0, void 0, void 0, function* () {
38
+ yield baseCrud.list();
39
+ const axiosParams = requestSpy.mock.calls[0][0];
40
+ expect(axiosParams.url).toBe(`https://api.bexio.com/2.0/${endpoint}`);
41
+ }));
42
+ it("Should pass the options to request", () => __awaiter(void 0, void 0, void 0, function* () {
43
+ const limit = chance.integer({ min: 0 });
44
+ yield baseCrud.list({ limit });
45
+ const axiosParams = requestSpy.mock.calls[0][0];
46
+ expect(axiosParams.url).toBe(`https://api.bexio.com/2.0/${endpoint}?limit=${limit}`);
47
+ }));
48
+ });
49
+ describe("search", () => {
50
+ const endpoint = chance.string();
51
+ const apiToken = chance.string();
52
+ const searchRequest = {
53
+ field: chance.string(),
54
+ value: chance.string(),
55
+ criteria: "!=",
56
+ };
57
+ const baseCrud = new BaseCrud_1.default(apiToken, `/${endpoint}`);
58
+ it("Should be a POST request", () => __awaiter(void 0, void 0, void 0, function* () {
59
+ yield baseCrud.search([searchRequest]);
60
+ const axiosParams = requestSpy.mock.calls[0][0];
61
+ expect(axiosParams.method).toBe("POST");
62
+ }));
63
+ it("Should use the given endpoint", () => __awaiter(void 0, void 0, void 0, function* () {
64
+ yield baseCrud.search([searchRequest]);
65
+ const axiosParams = requestSpy.mock.calls[0][0];
66
+ expect(axiosParams.url).toBe(`https://api.bexio.com/2.0/${endpoint}/search`);
67
+ }));
68
+ it("Should contain the request body", () => __awaiter(void 0, void 0, void 0, function* () {
69
+ yield baseCrud.search([searchRequest]);
70
+ const axiosParams = requestSpy.mock.calls[0][0];
71
+ expect(axiosParams.data).toHaveLength(1);
72
+ expect(axiosParams.data[0]).toBe(searchRequest);
73
+ }));
74
+ it("Should pass the options to request", () => __awaiter(void 0, void 0, void 0, function* () {
75
+ const limit = chance.integer({ min: 0 });
76
+ yield baseCrud.search([searchRequest], { limit });
77
+ const axiosParams = requestSpy.mock.calls[0][0];
78
+ expect(axiosParams.url).toBe(`https://api.bexio.com/2.0/${endpoint}/search?limit=${limit}`);
79
+ }));
80
+ });
81
+ describe("show", () => {
82
+ const endpoint = chance.string();
83
+ const apiToken = chance.string();
84
+ const baseCrud = new BaseCrud_1.default(apiToken, `/${endpoint}`);
85
+ it("Should be a GET request", () => __awaiter(void 0, void 0, void 0, function* () {
86
+ yield baseCrud.show(chance.integer({ min: 0 }));
87
+ const axiosParams = requestSpy.mock.calls[0][0];
88
+ expect(axiosParams.method).toBe("GET");
89
+ }));
90
+ it("Should use the given endpoint", () => __awaiter(void 0, void 0, void 0, function* () {
91
+ const id = chance.integer({ min: 0 });
92
+ yield baseCrud.show(id);
93
+ const axiosParams = requestSpy.mock.calls[0][0];
94
+ expect(axiosParams.url).toBe(`https://api.bexio.com/2.0/${endpoint}/${id}`);
95
+ }));
96
+ it("Should pass the options to request", () => __awaiter(void 0, void 0, void 0, function* () {
97
+ const id = chance.integer({ min: 0 });
98
+ const limit = chance.integer({ min: 0 });
99
+ yield baseCrud.show(id, { limit });
100
+ const axiosParams = requestSpy.mock.calls[0][0];
101
+ expect(axiosParams.url).toBe(`https://api.bexio.com/2.0/${endpoint}/${id}?limit=${limit}`);
102
+ }));
103
+ });
104
+ describe("create", () => {
105
+ const endpoint = chance.string();
106
+ const apiToken = chance.string();
107
+ const createRequest = {
108
+ firstname: chance.name(),
109
+ };
110
+ const baseCrud = new BaseCrud_1.default(apiToken, `/${endpoint}`);
111
+ it("Should be a POST request", () => __awaiter(void 0, void 0, void 0, function* () {
112
+ yield baseCrud.create(createRequest);
113
+ const axiosParams = requestSpy.mock.calls[0][0];
114
+ expect(axiosParams.method).toBe("POST");
115
+ }));
116
+ it("Should use the given endpoint", () => __awaiter(void 0, void 0, void 0, function* () {
117
+ yield baseCrud.create(createRequest);
118
+ const axiosParams = requestSpy.mock.calls[0][0];
119
+ expect(axiosParams.url).toBe(`https://api.bexio.com/2.0/${endpoint}`);
120
+ }));
121
+ it("Should contain the request body", () => __awaiter(void 0, void 0, void 0, function* () {
122
+ yield baseCrud.create(createRequest);
123
+ const axiosParams = requestSpy.mock.calls[0][0];
124
+ expect(axiosParams.data).toBe(createRequest);
125
+ }));
126
+ });
127
+ describe("overwrite", () => {
128
+ const endpoint = chance.string();
129
+ const apiToken = chance.string();
130
+ const overwriteRequest = {
131
+ firstname: chance.name(),
132
+ };
133
+ const baseCrud = new BaseCrud_1.default(apiToken, `/${endpoint}`);
134
+ it("Should be a PUT request", () => __awaiter(void 0, void 0, void 0, function* () {
135
+ yield baseCrud.overwrite(chance.integer(), overwriteRequest);
136
+ const axiosParams = requestSpy.mock.calls[0][0];
137
+ expect(axiosParams.method).toBe("PUT");
138
+ }));
139
+ it("Should use the given endpoint", () => __awaiter(void 0, void 0, void 0, function* () {
140
+ const id = chance.integer();
141
+ yield baseCrud.overwrite(id, overwriteRequest);
142
+ const axiosParams = requestSpy.mock.calls[0][0];
143
+ expect(axiosParams.url).toBe(`https://api.bexio.com/2.0/${endpoint}/${id}`);
144
+ }));
145
+ it("Should contain the request body", () => __awaiter(void 0, void 0, void 0, function* () {
146
+ yield baseCrud.overwrite(chance.integer(), overwriteRequest);
147
+ const axiosParams = requestSpy.mock.calls[0][0];
148
+ expect(axiosParams.data).toBe(overwriteRequest);
149
+ }));
150
+ });
151
+ describe("edit", () => {
152
+ const endpoint = chance.string();
153
+ const apiToken = chance.string();
154
+ const editRequest = {
155
+ firstname: chance.name(),
156
+ };
157
+ const baseCrud = new BaseCrud_1.default(apiToken, `/${endpoint}`);
158
+ it("Should be a POST request", () => __awaiter(void 0, void 0, void 0, function* () {
159
+ yield baseCrud.edit(chance.integer(), editRequest);
160
+ const axiosParams = requestSpy.mock.calls[0][0];
161
+ expect(axiosParams.method).toBe("POST");
162
+ }));
163
+ it("Should use the given endpoint", () => __awaiter(void 0, void 0, void 0, function* () {
164
+ const id = chance.integer();
165
+ yield baseCrud.edit(id, editRequest);
166
+ const axiosParams = requestSpy.mock.calls[0][0];
167
+ expect(axiosParams.url).toBe(`https://api.bexio.com/2.0/${endpoint}/${id}`);
168
+ }));
169
+ it("Should contain the request body", () => __awaiter(void 0, void 0, void 0, function* () {
170
+ yield baseCrud.edit(chance.integer(), editRequest);
171
+ const axiosParams = requestSpy.mock.calls[0][0];
172
+ expect(axiosParams.data).toBe(editRequest);
173
+ }));
174
+ });
175
+ describe("delete", () => {
176
+ const endpoint = chance.string();
177
+ const apiToken = chance.string();
178
+ const baseCrud = new BaseCrud_1.default(apiToken, `/${endpoint}`);
179
+ it("Should be a DELETE request", () => __awaiter(void 0, void 0, void 0, function* () {
180
+ requestSpy.mockResolvedValueOnce({ data: { success: true } });
181
+ yield baseCrud.delete(chance.integer());
182
+ const axiosParams = requestSpy.mock.calls[0][0];
183
+ expect(axiosParams.method).toBe("DELETE");
184
+ }));
185
+ it("Should use the given endpoint", () => __awaiter(void 0, void 0, void 0, function* () {
186
+ requestSpy.mockResolvedValueOnce({ data: { success: true } });
187
+ const id = chance.integer();
188
+ yield baseCrud.delete(id);
189
+ const axiosParams = requestSpy.mock.calls[0][0];
190
+ expect(axiosParams.url).toBe(`https://api.bexio.com/2.0/${endpoint}/${id}`);
191
+ }));
192
+ it("Should return the success value", () => __awaiter(void 0, void 0, void 0, function* () {
193
+ const success = chance.bool();
194
+ requestSpy.mockResolvedValueOnce({ data: { success } });
195
+ const resp = yield baseCrud.delete(chance.integer());
196
+ expect(resp).toBe(success);
197
+ }));
198
+ });
199
+ describe("request", () => {
200
+ const endpoint = chance.string();
201
+ const apiToken = chance.string();
202
+ const baseCrud = new BaseCrud_1.default(apiToken, `/${endpoint}`);
203
+ it("Should create the request options", () => __awaiter(void 0, void 0, void 0, function* () {
204
+ const method = chance.pickone([
205
+ "DELETE",
206
+ "get",
207
+ "GET",
208
+ "delete",
209
+ "head",
210
+ "HEAD",
211
+ "options",
212
+ "OPTIONS",
213
+ "post",
214
+ "POST",
215
+ "put",
216
+ "PUT",
217
+ "patch",
218
+ "PATCH",
219
+ "purge",
220
+ "PURGE",
221
+ "link",
222
+ "LINK",
223
+ "unlink",
224
+ "UNLINK",
225
+ ]);
226
+ const path = chance.string();
227
+ // @ts-ignore
228
+ yield baseCrud.request(method, `/${path}`);
229
+ const axiosParams = requestSpy.mock.calls[0][0];
230
+ expect(axiosParams.method).toBe(method);
231
+ expect(axiosParams.url).toBe(`https://api.bexio.com/2.0/${path}`);
232
+ expect(axiosParams.headers.Authorization).toBe(`Bearer ${apiToken}`);
233
+ expect(axiosParams.headers["Content-Type"]).toBe("application/json");
234
+ expect(axiosParams.headers.Accept).toBe("application/json");
235
+ }));
236
+ it("Should add a data param if present", () => __awaiter(void 0, void 0, void 0, function* () {
237
+ const body = { test: chance.string() };
238
+ // @ts-ignore
239
+ yield baseCrud.request(chance.string(), chance.string(), undefined, body);
240
+ const axiosParams = requestSpy.mock.calls[0][0];
241
+ expect(axiosParams.data).toBe(body);
242
+ }));
243
+ it("Should add options as GET params", () => __awaiter(void 0, void 0, void 0, function* () {
244
+ const limit = chance.integer({ min: 0 });
245
+ const path = chance.string();
246
+ // @ts-ignore
247
+ yield baseCrud.request(chance.string(), `/${path}`, { limit });
248
+ const axiosParams = requestSpy.mock.calls[0][0];
249
+ expect(axiosParams.url).toBe(`https://api.bexio.com/2.0/${path}?limit=${limit}`);
250
+ }));
251
+ it("Should normalize an error", () => __awaiter(void 0, void 0, void 0, function* () {
252
+ const responseCode = chance.integer({ min: 100 });
253
+ const responseMessage = chance.string();
254
+ requestSpy
255
+ .mockRejectedValueOnce({
256
+ response: { status: responseCode, data: responseMessage },
257
+ })
258
+ .mockRejectedValueOnce({
259
+ response: { status: responseCode, data: responseMessage },
260
+ });
261
+ // @ts-ignore
262
+ yield expect(baseCrud.request()).rejects.toMatchObject({
263
+ code: responseCode,
264
+ message: responseMessage,
265
+ });
266
+ }));
267
+ });
268
+ describe("optionsToQuery", () => {
269
+ const endpoint = chance.string();
270
+ const apiToken = chance.string();
271
+ const baseCrud = new BaseCrud_1.default(apiToken, `/${endpoint}`);
272
+ it("Should return an empty string", () => {
273
+ //@ts-ignore
274
+ expect(baseCrud.optionsToQuery()).toBe("");
275
+ });
276
+ it("Should return an GET parameter string", () => {
277
+ const options = { test: chance.first(), test2: chance.state() };
278
+ //@ts-ignore
279
+ expect(baseCrud.optionsToQuery(options)).toBe(`?test=${options.test}&test2=${options.test2}`);
280
+ });
281
+ it("Should url encode the parameters", () => {
282
+ const options = {};
283
+ const optionKey = chance.string();
284
+ options[optionKey] = chance.string();
285
+ //@ts-ignore
286
+ expect(baseCrud.optionsToQuery(options)).toBe(`?${encodeURIComponent(optionKey)}=${encodeURIComponent(options[optionKey])}`);
287
+ });
288
+ });
289
+ });
290
+ //# sourceMappingURL=BaseCrud.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseCrud.test.js","sourceRoot":"","sources":["../../src/tests/BaseCrud.test.ts"],"names":[],"mappings":"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"}