@powerhousedao/contributor-billing 0.0.76 → 0.0.78

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 (178) hide show
  1. package/dist/document-models/billing-statement/gen/general/actions.d.ts +13 -4
  2. package/dist/document-models/billing-statement/gen/general/actions.d.ts.map +1 -1
  3. package/dist/document-models/billing-statement/gen/general/object.d.ts +3 -3
  4. package/dist/document-models/billing-statement/gen/general/object.d.ts.map +1 -1
  5. package/dist/document-models/billing-statement/gen/index.d.ts +2 -0
  6. package/dist/document-models/billing-statement/gen/index.d.ts.map +1 -1
  7. package/dist/document-models/billing-statement/gen/index.js +1 -0
  8. package/dist/document-models/billing-statement/gen/line-items/actions.d.ts +9 -3
  9. package/dist/document-models/billing-statement/gen/line-items/actions.d.ts.map +1 -1
  10. package/dist/document-models/billing-statement/gen/line-items/object.d.ts +3 -3
  11. package/dist/document-models/billing-statement/gen/line-items/object.d.ts.map +1 -1
  12. package/dist/document-models/billing-statement/gen/object.d.ts +4 -5
  13. package/dist/document-models/billing-statement/gen/object.d.ts.map +1 -1
  14. package/dist/document-models/billing-statement/gen/object.js +2 -2
  15. package/dist/document-models/billing-statement/gen/ph-factories.d.ts +27 -0
  16. package/dist/document-models/billing-statement/gen/ph-factories.d.ts.map +1 -0
  17. package/dist/document-models/billing-statement/gen/ph-factories.js +58 -0
  18. package/dist/document-models/billing-statement/gen/reducer.d.ts +4 -2
  19. package/dist/document-models/billing-statement/gen/reducer.d.ts.map +1 -1
  20. package/dist/document-models/billing-statement/gen/reducer.js +4 -1
  21. package/dist/document-models/billing-statement/gen/schema/types.d.ts +4 -0
  22. package/dist/document-models/billing-statement/gen/schema/types.d.ts.map +1 -1
  23. package/dist/document-models/billing-statement/gen/tags/actions.d.ts +5 -2
  24. package/dist/document-models/billing-statement/gen/tags/actions.d.ts.map +1 -1
  25. package/dist/document-models/billing-statement/gen/tags/object.d.ts +3 -3
  26. package/dist/document-models/billing-statement/gen/tags/object.d.ts.map +1 -1
  27. package/dist/document-models/billing-statement/gen/types.d.ts +4 -4
  28. package/dist/document-models/billing-statement/gen/types.d.ts.map +1 -1
  29. package/dist/document-models/billing-statement/gen/utils.d.ts +18 -3
  30. package/dist/document-models/billing-statement/gen/utils.d.ts.map +1 -1
  31. package/dist/document-models/billing-statement/gen/utils.js +33 -29
  32. package/dist/document-models/billing-statement/index.d.ts +8 -9
  33. package/dist/document-models/billing-statement/index.d.ts.map +1 -1
  34. package/dist/document-models/integrations/gen/index.d.ts +2 -0
  35. package/dist/document-models/integrations/gen/index.d.ts.map +1 -1
  36. package/dist/document-models/integrations/gen/index.js +1 -0
  37. package/dist/document-models/integrations/gen/integrations/actions.d.ts +13 -4
  38. package/dist/document-models/integrations/gen/integrations/actions.d.ts.map +1 -1
  39. package/dist/document-models/integrations/gen/integrations/object.d.ts +3 -3
  40. package/dist/document-models/integrations/gen/integrations/object.d.ts.map +1 -1
  41. package/dist/document-models/integrations/gen/object.d.ts +4 -5
  42. package/dist/document-models/integrations/gen/object.d.ts.map +1 -1
  43. package/dist/document-models/integrations/gen/object.js +2 -2
  44. package/dist/document-models/integrations/gen/ph-factories.d.ts +27 -0
  45. package/dist/document-models/integrations/gen/ph-factories.d.ts.map +1 -0
  46. package/dist/document-models/integrations/gen/ph-factories.js +75 -0
  47. package/dist/document-models/integrations/gen/reducer.d.ts +4 -2
  48. package/dist/document-models/integrations/gen/reducer.d.ts.map +1 -1
  49. package/dist/document-models/integrations/gen/reducer.js +4 -1
  50. package/dist/document-models/integrations/gen/schema/types.d.ts +4 -0
  51. package/dist/document-models/integrations/gen/schema/types.d.ts.map +1 -1
  52. package/dist/document-models/integrations/gen/types.d.ts +4 -4
  53. package/dist/document-models/integrations/gen/types.d.ts.map +1 -1
  54. package/dist/document-models/integrations/gen/utils.d.ts +18 -3
  55. package/dist/document-models/integrations/gen/utils.d.ts.map +1 -1
  56. package/dist/document-models/integrations/gen/utils.js +36 -32
  57. package/dist/document-models/integrations/index.d.ts +8 -9
  58. package/dist/document-models/integrations/index.d.ts.map +1 -1
  59. package/dist/document-models/invoice/gen/general/actions.d.ts +21 -6
  60. package/dist/document-models/invoice/gen/general/actions.d.ts.map +1 -1
  61. package/dist/document-models/invoice/gen/general/object.d.ts +3 -3
  62. package/dist/document-models/invoice/gen/general/object.d.ts.map +1 -1
  63. package/dist/document-models/invoice/gen/index.d.ts +2 -0
  64. package/dist/document-models/invoice/gen/index.d.ts.map +1 -1
  65. package/dist/document-models/invoice/gen/index.js +1 -0
  66. package/dist/document-models/invoice/gen/items/actions.d.ts +21 -6
  67. package/dist/document-models/invoice/gen/items/actions.d.ts.map +1 -1
  68. package/dist/document-models/invoice/gen/items/object.d.ts +3 -3
  69. package/dist/document-models/invoice/gen/items/object.d.ts.map +1 -1
  70. package/dist/document-models/invoice/gen/object.d.ts +4 -5
  71. package/dist/document-models/invoice/gen/object.d.ts.map +1 -1
  72. package/dist/document-models/invoice/gen/object.js +2 -2
  73. package/dist/document-models/invoice/gen/parties/actions.d.ts +25 -7
  74. package/dist/document-models/invoice/gen/parties/actions.d.ts.map +1 -1
  75. package/dist/document-models/invoice/gen/parties/object.d.ts +3 -3
  76. package/dist/document-models/invoice/gen/parties/object.d.ts.map +1 -1
  77. package/dist/document-models/invoice/gen/ph-factories.d.ts +27 -0
  78. package/dist/document-models/invoice/gen/ph-factories.d.ts.map +1 -0
  79. package/dist/document-models/invoice/gen/ph-factories.js +190 -0
  80. package/dist/document-models/invoice/gen/reducer.d.ts +4 -2
  81. package/dist/document-models/invoice/gen/reducer.d.ts.map +1 -1
  82. package/dist/document-models/invoice/gen/reducer.js +4 -1
  83. package/dist/document-models/invoice/gen/schema/types.d.ts +4 -0
  84. package/dist/document-models/invoice/gen/schema/types.d.ts.map +1 -1
  85. package/dist/document-models/invoice/gen/schema/zod.d.ts.map +1 -1
  86. package/dist/document-models/invoice/gen/transitions/actions.d.ts +49 -13
  87. package/dist/document-models/invoice/gen/transitions/actions.d.ts.map +1 -1
  88. package/dist/document-models/invoice/gen/transitions/object.d.ts +3 -3
  89. package/dist/document-models/invoice/gen/transitions/object.d.ts.map +1 -1
  90. package/dist/document-models/invoice/gen/types.d.ts +4 -4
  91. package/dist/document-models/invoice/gen/types.d.ts.map +1 -1
  92. package/dist/document-models/invoice/gen/utils.d.ts +18 -3
  93. package/dist/document-models/invoice/gen/utils.d.ts.map +1 -1
  94. package/dist/document-models/invoice/gen/utils.js +33 -29
  95. package/dist/document-models/invoice/index.d.ts +8 -9
  96. package/dist/document-models/invoice/index.d.ts.map +1 -1
  97. package/dist/editors/billing-statement/editor.d.ts +2 -3
  98. package/dist/editors/billing-statement/editor.d.ts.map +1 -1
  99. package/dist/editors/billing-statement/editor.js +11 -3
  100. package/dist/editors/billing-statement/index.d.ts +1 -2
  101. package/dist/editors/billing-statement/index.d.ts.map +1 -1
  102. package/dist/editors/billing-statement/lineItemTags/lineItemTags.js +1 -1
  103. package/dist/editors/contributor-billing/components/CreateDocument.d.ts +5 -7
  104. package/dist/editors/contributor-billing/components/CreateDocument.d.ts.map +1 -1
  105. package/dist/editors/contributor-billing/components/CreateDocument.js +18 -9
  106. package/dist/editors/contributor-billing/components/DriveExplorer.d.ts +6 -16
  107. package/dist/editors/contributor-billing/components/DriveExplorer.d.ts.map +1 -1
  108. package/dist/editors/contributor-billing/components/DriveExplorer.js +179 -88
  109. package/dist/editors/contributor-billing/components/EditorContainer.d.ts +9 -13
  110. package/dist/editors/contributor-billing/components/EditorContainer.d.ts.map +1 -1
  111. package/dist/editors/contributor-billing/components/EditorContainer.js +37 -26
  112. package/dist/editors/contributor-billing/components/FolderTree.d.ts +7 -3
  113. package/dist/editors/contributor-billing/components/FolderTree.d.ts.map +1 -1
  114. package/dist/editors/contributor-billing/components/FolderTree.js +11 -4
  115. package/dist/editors/contributor-billing/components/InvoiceTable/HeaderControls.d.ts +1 -2
  116. package/dist/editors/contributor-billing/components/InvoiceTable/HeaderControls.d.ts.map +1 -1
  117. package/dist/editors/contributor-billing/components/InvoiceTable/InvoiceTable.d.ts +4 -8
  118. package/dist/editors/contributor-billing/components/InvoiceTable/InvoiceTable.d.ts.map +1 -1
  119. package/dist/editors/contributor-billing/components/InvoiceTable/InvoiceTable.js +125 -119
  120. package/dist/editors/contributor-billing/components/InvoiceTable/InvoiceTableRow.d.ts +1 -2
  121. package/dist/editors/contributor-billing/components/InvoiceTable/InvoiceTableRow.d.ts.map +1 -1
  122. package/dist/editors/contributor-billing/components/InvoiceTable/InvoiceTableRow.js +24 -4
  123. package/dist/editors/contributor-billing/editor.d.ts +9 -4
  124. package/dist/editors/contributor-billing/editor.d.ts.map +1 -1
  125. package/dist/editors/contributor-billing/editor.js +15 -41
  126. package/dist/editors/contributor-billing/hooks/useTransformedNodes.d.ts +1 -2
  127. package/dist/editors/contributor-billing/hooks/useTransformedNodes.d.ts.map +1 -1
  128. package/dist/editors/contributor-billing/index.d.ts +1 -2
  129. package/dist/editors/contributor-billing/index.d.ts.map +1 -1
  130. package/dist/editors/integrations/editor.d.ts +1 -4
  131. package/dist/editors/integrations/editor.d.ts.map +1 -1
  132. package/dist/editors/integrations/editor.js +10 -1
  133. package/dist/editors/integrations/index.d.ts +1 -2
  134. package/dist/editors/integrations/index.d.ts.map +1 -1
  135. package/dist/editors/invoice/InvoicePDF.d.ts.map +1 -1
  136. package/dist/editors/invoice/InvoicePDF.js +3 -3
  137. package/dist/editors/invoice/editor.d.ts +1 -4
  138. package/dist/editors/invoice/editor.d.ts.map +1 -1
  139. package/dist/editors/invoice/editor.js +10 -1
  140. package/dist/editors/invoice/index.d.ts +1 -2
  141. package/dist/editors/invoice/index.d.ts.map +1 -1
  142. package/dist/editors/invoice/ingestPDF.js +1 -1
  143. package/dist/editors/invoice/invoiceToGnosis.js +3 -3
  144. package/dist/editors/invoice/requestFinance.js +2 -2
  145. package/dist/editors/invoice/uploadPdfChunked.js +1 -1
  146. package/dist/index.d.ts +2 -2
  147. package/dist/index.d.ts.map +1 -1
  148. package/dist/reducers/general.d.ts +8 -0
  149. package/dist/reducers/general.d.ts.map +1 -0
  150. package/dist/reducers/general.js +73 -0
  151. package/dist/reducers/items.d.ts +8 -0
  152. package/dist/reducers/items.d.ts.map +1 -0
  153. package/dist/reducers/items.js +195 -0
  154. package/dist/reducers/parties.d.ts +8 -0
  155. package/dist/reducers/parties.d.ts.map +1 -0
  156. package/dist/reducers/parties.js +266 -0
  157. package/dist/reducers/transitions.d.ts +8 -0
  158. package/dist/reducers/transitions.d.ts.map +1 -0
  159. package/dist/reducers/transitions.js +162 -0
  160. package/dist/scripts/contributor-billing/createXeroCsv.js +2 -2
  161. package/dist/scripts/invoice/gnosisTransactionBuilder.js +1 -1
  162. package/dist/style.css +730 -108
  163. package/dist/subgraphs/billing-statement/index.d.ts +2 -1
  164. package/dist/subgraphs/billing-statement/index.d.ts.map +1 -1
  165. package/dist/subgraphs/billing-statement/resolvers.d.ts.map +1 -1
  166. package/dist/subgraphs/billing-statement/resolvers.js +101 -69
  167. package/dist/subgraphs/billing-statement/schema.js +3 -3
  168. package/dist/subgraphs/integrations/index.d.ts +2 -1
  169. package/dist/subgraphs/integrations/index.d.ts.map +1 -1
  170. package/dist/subgraphs/integrations/resolvers.d.ts.map +1 -1
  171. package/dist/subgraphs/integrations/resolvers.js +61 -46
  172. package/dist/subgraphs/integrations/schema.js +3 -3
  173. package/dist/subgraphs/invoice/index.d.ts +2 -1
  174. package/dist/subgraphs/invoice/index.d.ts.map +1 -1
  175. package/dist/subgraphs/invoice/resolvers.d.ts.map +1 -1
  176. package/dist/subgraphs/invoice/resolvers.js +323 -181
  177. package/dist/subgraphs/invoice/schema.js +3 -3
  178. package/package.json +14 -14
@@ -1,7 +1,8 @@
1
1
  import { Subgraph } from "@powerhousedao/reactor-api";
2
+ import type { DocumentNode } from "graphql";
2
3
  export declare class BillingStatementSubgraph extends Subgraph {
3
4
  name: string;
4
- typeDefs: import("graphql").DocumentNode;
5
+ typeDefs: DocumentNode;
5
6
  resolvers: Record<string, any>;
6
7
  additionalContextFields: {};
7
8
  onSetup(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../subgraphs/billing-statement/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAKtD,qBAAa,wBAAyB,SAAQ,QAAQ;IACpD,IAAI,SAAuB;IAE3B,QAAQ,iCAAU;IAClB,SAAS,sBAAsB;IAC/B,uBAAuB,KAAM;IACvB,OAAO;IACP,YAAY;CACnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../subgraphs/billing-statement/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,qBAAa,wBAAyB,SAAQ,QAAQ;IACpD,IAAI,SAAuB;IAC3B,QAAQ,EAAE,YAAY,CAAU;IAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAsB;IACpD,uBAAuB,KAAM;IACvB,OAAO;IACP,YAAY;CACnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../subgraphs/billing-statement/resolvers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAO3D,eAAO,MAAM,YAAY,GAAI,UAAU,QAAQ,KAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CA4JnE,CAAC"}
1
+ {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../subgraphs/billing-statement/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAc3D,eAAO,MAAM,YAAY,GAAI,UAAU,QAAQ,KAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CA+NnE,CAAC"}
@@ -1,107 +1,139 @@
1
1
  import { addFile } from "document-drive";
2
- import { actions } from "../../document-models/billing-statement/index.js";
3
- import { generateId } from "document-model";
4
- const DEFAULT_DRIVE_ID = "powerhouse";
2
+ import { actions, } from "../../document-models/billing-statement/index.js";
3
+ import { setName } from "document-model";
5
4
  export const getResolvers = (subgraph) => {
6
5
  const reactor = subgraph.reactor;
7
6
  return {
8
7
  Query: {
9
- BillingStatement: async (_, args, ctx) => {
8
+ BillingStatement: async () => {
10
9
  return {
11
10
  getDocument: async (args) => {
12
- const driveId = args.driveId || DEFAULT_DRIVE_ID;
13
- const docId = args.docId || "";
14
- const doc = await reactor.getDocument(driveId, docId);
11
+ const { docId, driveId } = args;
12
+ if (!docId) {
13
+ throw new Error("Document id is required");
14
+ }
15
+ if (driveId) {
16
+ const docIds = await reactor.getDocuments(driveId);
17
+ if (!docIds.includes(docId)) {
18
+ throw new Error(`Document with id ${docId} is not part of ${driveId}`);
19
+ }
20
+ }
21
+ const doc = await reactor.getDocument(docId);
15
22
  return {
16
- ...doc,
17
23
  driveId: driveId,
18
- state: doc?.state?.global ?? "",
19
- stateJSON: doc?.state?.global,
20
- revision: doc?.header?.revision?.global,
24
+ ...doc,
25
+ ...doc.header,
26
+ state: doc.state.global,
27
+ stateJSON: doc.state.global,
28
+ revision: doc.header?.revision?.global ?? 0,
21
29
  };
22
30
  },
23
31
  getDocuments: async (args) => {
24
- const driveId = args.driveId || DEFAULT_DRIVE_ID;
32
+ const { driveId } = args;
25
33
  const docsIds = await reactor.getDocuments(driveId);
26
- const docs = await Promise.all((docsIds ?? []).map(async (docId) => {
27
- const doc = await reactor.getDocument(driveId, docId);
34
+ const docs = await Promise.all(docsIds.map(async (docId) => {
35
+ const doc = await reactor.getDocument(docId);
28
36
  return {
29
- ...doc,
30
37
  driveId: driveId,
31
- state: doc?.state?.global ?? "",
32
- stateJSON: doc?.state?.global,
33
- revision: doc?.header?.revision?.global,
38
+ ...doc,
39
+ ...doc.header,
40
+ state: doc.state.global,
41
+ stateJSON: doc.state.global,
42
+ revision: doc.header?.revision?.global ?? 0,
34
43
  };
35
44
  }));
36
- return docs.filter((doc) => doc.header?.documentType === "powerhouse/billing-statement");
45
+ return docs.filter((doc) => doc.header.documentType === "powerhouse/billing-statement");
37
46
  },
38
47
  };
39
48
  },
40
49
  },
41
50
  Mutation: {
42
51
  BillingStatement_createDocument: async (_, args) => {
43
- const driveId = args.driveId || DEFAULT_DRIVE_ID;
44
- const docId = generateId();
45
- await reactor.addDriveAction(driveId, addFile({
46
- id: docId,
47
- name: args.name,
48
- documentType: "powerhouse/billing-statement",
49
- synchronizationUnits: [
50
- {
51
- branch: "main",
52
- scope: "global",
53
- syncId: generateId(),
54
- },
55
- {
56
- branch: "main",
57
- scope: "local",
58
- syncId: generateId(),
59
- },
60
- ],
61
- }));
62
- return docId;
52
+ const { driveId, name } = args;
53
+ const document = await reactor.addDocument("powerhouse/billing-statement");
54
+ if (driveId) {
55
+ await reactor.addAction(driveId, addFile({
56
+ name,
57
+ id: document.header.id,
58
+ documentType: "powerhouse/billing-statement",
59
+ }));
60
+ }
61
+ if (name) {
62
+ await reactor.addAction(document.header.id, setName(name));
63
+ }
64
+ return document.header.id;
63
65
  },
64
66
  BillingStatement_editBillingStatement: async (_, args) => {
65
- const driveId = args.driveId || DEFAULT_DRIVE_ID;
66
- const docId = args.docId || "";
67
- const doc = await reactor.getDocument(driveId, docId);
68
- await reactor.addAction(driveId, docId, actions.editBillingStatement({ ...args.input }));
69
- return (doc?.header?.revision.global ?? 0) + 1;
67
+ const { docId, input } = args;
68
+ const doc = await reactor.getDocument(docId);
69
+ if (!doc) {
70
+ throw new Error("Document not found");
71
+ }
72
+ const result = await reactor.addAction(docId, actions.editBillingStatement(input));
73
+ if (result.status !== "SUCCESS") {
74
+ throw new Error(result.error?.message ?? "Failed to editBillingStatement");
75
+ }
76
+ return true;
70
77
  },
71
78
  BillingStatement_editContributor: async (_, args) => {
72
- const driveId = args.driveId || DEFAULT_DRIVE_ID;
73
- const docId = args.docId || "";
74
- const doc = await reactor.getDocument(driveId, docId);
75
- await reactor.addAction(driveId, docId, actions.editContributor({ ...args.input }));
76
- return (doc?.header?.revision.global ?? 0) + 1;
79
+ const { docId, input } = args;
80
+ const doc = await reactor.getDocument(docId);
81
+ if (!doc) {
82
+ throw new Error("Document not found");
83
+ }
84
+ const result = await reactor.addAction(docId, actions.editContributor(input));
85
+ if (result.status !== "SUCCESS") {
86
+ throw new Error(result.error?.message ?? "Failed to editContributor");
87
+ }
88
+ return true;
77
89
  },
78
90
  BillingStatement_editStatus: async (_, args) => {
79
- const driveId = args.driveId || DEFAULT_DRIVE_ID;
80
- const docId = args.docId || "";
81
- const doc = await reactor.getDocument(driveId, docId);
82
- await reactor.addAction(driveId, docId, actions.editStatus({ ...args.input }));
83
- return (doc?.header?.revision.global ?? 0) + 1;
91
+ const { docId, input } = args;
92
+ const doc = await reactor.getDocument(docId);
93
+ if (!doc) {
94
+ throw new Error("Document not found");
95
+ }
96
+ const result = await reactor.addAction(docId, actions.editStatus(input));
97
+ if (result.status !== "SUCCESS") {
98
+ throw new Error(result.error?.message ?? "Failed to editStatus");
99
+ }
100
+ return true;
84
101
  },
85
102
  BillingStatement_addLineItem: async (_, args) => {
86
- const driveId = args.driveId || DEFAULT_DRIVE_ID;
87
- const docId = args.docId || "";
88
- const doc = await reactor.getDocument(driveId, docId);
89
- await reactor.addAction(driveId, docId, actions.addLineItem({ ...args.input }));
90
- return (doc?.header?.revision.global ?? 0) + 1;
103
+ const { docId, input } = args;
104
+ const doc = await reactor.getDocument(docId);
105
+ if (!doc) {
106
+ throw new Error("Document not found");
107
+ }
108
+ const result = await reactor.addAction(docId, actions.addLineItem(input));
109
+ if (result.status !== "SUCCESS") {
110
+ throw new Error(result.error?.message ?? "Failed to addLineItem");
111
+ }
112
+ return true;
91
113
  },
92
114
  BillingStatement_editLineItem: async (_, args) => {
93
- const driveId = args.driveId || DEFAULT_DRIVE_ID;
94
- const docId = args.docId || "";
95
- const doc = await reactor.getDocument(driveId, docId);
96
- await reactor.addAction(driveId, docId, actions.editLineItem({ ...args.input }));
97
- return (doc?.header?.revision.global ?? 0) + 1;
115
+ const { docId, input } = args;
116
+ const doc = await reactor.getDocument(docId);
117
+ if (!doc) {
118
+ throw new Error("Document not found");
119
+ }
120
+ const result = await reactor.addAction(docId, actions.editLineItem(input));
121
+ if (result.status !== "SUCCESS") {
122
+ throw new Error(result.error?.message ?? "Failed to editLineItem");
123
+ }
124
+ return true;
98
125
  },
99
126
  BillingStatement_editLineItemTag: async (_, args) => {
100
- const driveId = args.driveId || DEFAULT_DRIVE_ID;
101
- const docId = args.docId || "";
102
- const doc = await reactor.getDocument(driveId, docId);
103
- await reactor.addAction(driveId, docId, actions.editLineItemTag({ ...args.input }));
104
- return (doc?.header?.revision.global ?? 0) + 1;
127
+ const { docId, input } = args;
128
+ const doc = await reactor.getDocument(docId);
129
+ if (!doc) {
130
+ throw new Error("Document not found");
131
+ }
132
+ const result = await reactor.addAction(docId, actions.editLineItemTag(input));
133
+ if (result.status !== "SUCCESS") {
134
+ throw new Error(result.error?.message ?? "Failed to editLineItemTag");
135
+ }
136
+ return true;
105
137
  },
106
138
  },
107
139
  };
@@ -67,8 +67,8 @@ export const schema = gql `
67
67
  Queries: BillingStatement
68
68
  """
69
69
  type BillingStatementQueries {
70
- getDocument(driveId: String, docId: PHID): BillingStatement
71
- getDocuments: [BillingStatement!]
70
+ getDocument(docId: PHID!, driveId: PHID): BillingStatement
71
+ getDocuments(driveId: String!): [BillingStatement!]
72
72
  }
73
73
 
74
74
  type Query {
@@ -79,7 +79,7 @@ export const schema = gql `
79
79
  Mutations: BillingStatement
80
80
  """
81
81
  type Mutation {
82
- BillingStatement_createDocument(driveId: String, name: String): String
82
+ BillingStatement_createDocument(name: String!, driveId: String): String
83
83
 
84
84
  BillingStatement_editBillingStatement(
85
85
  driveId: String
@@ -1,7 +1,8 @@
1
1
  import { Subgraph } from "@powerhousedao/reactor-api";
2
+ import type { DocumentNode } from "graphql";
2
3
  export declare class IntegrationsSubgraph extends Subgraph {
3
4
  name: string;
4
- typeDefs: import("graphql").DocumentNode;
5
+ typeDefs: DocumentNode;
5
6
  resolvers: Record<string, any>;
6
7
  additionalContextFields: {};
7
8
  onSetup(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../subgraphs/integrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAKtD,qBAAa,oBAAqB,SAAQ,QAAQ;IAChD,IAAI,SAAkB;IAEtB,QAAQ,iCAAU;IAClB,SAAS,sBAAsB;IAC/B,uBAAuB,KAAM;IACvB,OAAO;IACP,YAAY;CACnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../subgraphs/integrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,qBAAa,oBAAqB,SAAQ,QAAQ;IAChD,IAAI,SAAkB;IACtB,QAAQ,EAAE,YAAY,CAAU;IAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAsB;IACpD,uBAAuB,KAAM;IACvB,OAAO;IACP,YAAY;CACnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../subgraphs/integrations/resolvers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAO3D,eAAO,MAAM,YAAY,GAAI,UAAU,QAAQ,KAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAoHnE,CAAC"}
1
+ {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../subgraphs/integrations/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAW3D,eAAO,MAAM,YAAY,GAAI,UAAU,QAAQ,KAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAyJnE,CAAC"}
@@ -1,38 +1,45 @@
1
1
  import { addFile } from "document-drive";
2
- import { actions } from "../../document-models/integrations/index.js";
3
- import { generateId } from "document-model";
4
- const DEFAULT_DRIVE_ID = "powerhouse";
2
+ import { actions, } from "../../document-models/integrations/index.js";
3
+ import { setName } from "document-model";
5
4
  export const getResolvers = (subgraph) => {
6
5
  const reactor = subgraph.reactor;
7
6
  return {
8
7
  Query: {
9
- Integrations: async (_, args, ctx) => {
8
+ Integrations: async () => {
10
9
  return {
11
10
  getDocument: async (args) => {
12
- const driveId = args.driveId || DEFAULT_DRIVE_ID;
13
- const docId = args.docId || "";
14
- const doc = await reactor.getDocument(driveId, docId);
11
+ const { docId, driveId } = args;
12
+ if (!docId) {
13
+ throw new Error("Document id is required");
14
+ }
15
+ if (driveId) {
16
+ const docIds = await reactor.getDocuments(driveId);
17
+ if (!docIds.includes(docId)) {
18
+ throw new Error(`Document with id ${docId} is not part of ${driveId}`);
19
+ }
20
+ }
21
+ const doc = await reactor.getDocument(docId);
15
22
  return {
16
23
  driveId: driveId,
17
24
  ...doc,
18
25
  ...doc.header,
19
26
  state: doc.state.global,
20
27
  stateJSON: doc.state.global,
21
- revision: doc.header.revision["global"] ?? 0,
28
+ revision: doc.header?.revision?.global ?? 0,
22
29
  };
23
30
  },
24
31
  getDocuments: async (args) => {
25
- const driveId = args.driveId || DEFAULT_DRIVE_ID;
32
+ const { driveId } = args;
26
33
  const docsIds = await reactor.getDocuments(driveId);
27
34
  const docs = await Promise.all(docsIds.map(async (docId) => {
28
- const doc = await reactor.getDocument(driveId, docId);
35
+ const doc = await reactor.getDocument(docId);
29
36
  return {
30
37
  driveId: driveId,
31
38
  ...doc,
32
39
  ...doc.header,
33
40
  state: doc.state.global,
34
41
  stateJSON: doc.state.global,
35
- revision: doc.header.revision["global"] ?? 0,
42
+ revision: doc.header?.revision?.global ?? 0,
36
43
  };
37
44
  }));
38
45
  return docs.filter((doc) => doc.header.documentType === "powerhouse/integrations");
@@ -42,47 +49,55 @@ export const getResolvers = (subgraph) => {
42
49
  },
43
50
  Mutation: {
44
51
  Integrations_createDocument: async (_, args) => {
45
- const driveId = args.driveId || DEFAULT_DRIVE_ID;
46
- const docId = generateId();
47
- await reactor.addDriveAction(driveId, addFile({
48
- id: docId,
49
- name: args.name,
50
- documentType: "powerhouse/integrations",
51
- synchronizationUnits: [
52
- {
53
- branch: "main",
54
- scope: "global",
55
- syncId: generateId(),
56
- },
57
- {
58
- branch: "main",
59
- scope: "local",
60
- syncId: generateId(),
61
- },
62
- ],
63
- }));
64
- return docId;
52
+ const { driveId, name } = args;
53
+ const document = await reactor.addDocument("powerhouse/integrations");
54
+ if (driveId) {
55
+ await reactor.addAction(driveId, addFile({
56
+ name,
57
+ id: document.header.id,
58
+ documentType: "powerhouse/integrations",
59
+ }));
60
+ }
61
+ if (name) {
62
+ await reactor.addAction(document.header.id, setName(name));
63
+ }
64
+ return document.header.id;
65
65
  },
66
66
  Integrations_setRequestFinance: async (_, args) => {
67
- const driveId = args.driveId || DEFAULT_DRIVE_ID;
68
- const docId = args.docId || "";
69
- const doc = await reactor.getDocument(driveId, docId);
70
- await reactor.addAction(driveId, docId, actions.setRequestFinance({ ...args.input }));
71
- return (doc.header.revision["global"] ?? 0) + 1;
67
+ const { docId, input } = args;
68
+ const doc = await reactor.getDocument(docId);
69
+ if (!doc) {
70
+ throw new Error("Document not found");
71
+ }
72
+ const result = await reactor.addAction(docId, actions.setRequestFinance(input));
73
+ if (result.status !== "SUCCESS") {
74
+ throw new Error(result.error?.message ?? "Failed to setRequestFinance");
75
+ }
76
+ return true;
72
77
  },
73
78
  Integrations_setGnosisSafe: async (_, args) => {
74
- const driveId = args.driveId || DEFAULT_DRIVE_ID;
75
- const docId = args.docId || "";
76
- const doc = await reactor.getDocument(driveId, docId);
77
- await reactor.addAction(driveId, docId, actions.setGnosisSafe({ ...args.input }));
78
- return (doc.header.revision["global"] ?? 0) + 1;
79
+ const { docId, input } = args;
80
+ const doc = await reactor.getDocument(docId);
81
+ if (!doc) {
82
+ throw new Error("Document not found");
83
+ }
84
+ const result = await reactor.addAction(docId, actions.setGnosisSafe(input));
85
+ if (result.status !== "SUCCESS") {
86
+ throw new Error(result.error?.message ?? "Failed to setGnosisSafe");
87
+ }
88
+ return true;
79
89
  },
80
90
  Integrations_setGoogleCloud: async (_, args) => {
81
- const driveId = args.driveId || DEFAULT_DRIVE_ID;
82
- const docId = args.docId || "";
83
- const doc = await reactor.getDocument(driveId, docId);
84
- await reactor.addAction(driveId, docId, actions.setGoogleCloud({ ...args.input }));
85
- return (doc.header.revision["global"] ?? 0) + 1;
91
+ const { docId, input } = args;
92
+ const doc = await reactor.getDocument(docId);
93
+ if (!doc) {
94
+ throw new Error("Document not found");
95
+ }
96
+ const result = await reactor.addAction(docId, actions.setGoogleCloud(input));
97
+ if (result.status !== "SUCCESS") {
98
+ throw new Error(result.error?.message ?? "Failed to setGoogleCloud");
99
+ }
100
+ return true;
86
101
  },
87
102
  },
88
103
  };
@@ -44,8 +44,8 @@ export const schema = gql `
44
44
  Queries: Integrations
45
45
  """
46
46
  type IntegrationsQueries {
47
- getDocument(driveId: String, docId: PHID): Integrations
48
- getDocuments: [Integrations!]
47
+ getDocument(docId: PHID!, driveId: PHID): Integrations
48
+ getDocuments(driveId: String!): [Integrations!]
49
49
  }
50
50
 
51
51
  type Query {
@@ -56,7 +56,7 @@ export const schema = gql `
56
56
  Mutations: Integrations
57
57
  """
58
58
  type Mutation {
59
- Integrations_createDocument(driveId: String, name: String): String
59
+ Integrations_createDocument(name: String!, driveId: String): String
60
60
 
61
61
  Integrations_setRequestFinance(
62
62
  driveId: String
@@ -1,7 +1,8 @@
1
1
  import { Subgraph } from "@powerhousedao/reactor-api";
2
+ import type { DocumentNode } from "graphql";
2
3
  export declare class InvoiceSubgraph extends Subgraph {
3
4
  name: string;
4
- typeDefs: import("graphql").DocumentNode;
5
+ typeDefs: DocumentNode;
5
6
  resolvers: Record<string, any>;
6
7
  additionalContextFields: {};
7
8
  onSetup(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../subgraphs/invoice/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAOtD,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,IAAI,SAAa;IAEjB,QAAQ,iCAAU;IAClB,SAAS,sBAAsB;IAC/B,uBAAuB,KAAM;IACvB,OAAO;IAsBP,YAAY;CACnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../subgraphs/invoice/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAQ5C,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,IAAI,SAAa;IACjB,QAAQ,EAAE,YAAY,CAAU;IAChC,SAAS,sBAAsB;IAC/B,uBAAuB,KAAM;IACvB,OAAO;IAsBP,YAAY;CACnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../subgraphs/invoice/resolvers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAQ3D,eAAO,MAAM,YAAY,GAAI,UAAU,QAAQ,KAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAmdnE,CAAC"}
1
+ {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../subgraphs/invoice/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAqC3D,eAAO,MAAM,YAAY,GAAI,UAAU,QAAQ,KAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAkrBnE,CAAC"}