@@ -96,6 +283,8 @@ function Invoices() {
isLoading={isLoading}
invoices={invoices}
filteredInvoices={filteredInvoices}
+ onDeleteInvoice={handleDelete}
+ onEditInvoice={handleEdit}
/>
diff --git a/react-app/src/services/invoices.ts b/react-app/src/services/invoices.ts
index 7df3553..15329ae 100644
--- a/react-app/src/services/invoices.ts
+++ b/react-app/src/services/invoices.ts
@@ -1,5 +1,5 @@
import apiClient from './http'
-import type { Invoice } from '../types/invoice'
+import type { CreateInvoiceInput, Invoice, UpdateInvoiceInput } from '../types/invoice'
export const fetchInvoices = async (): Promise => {
const response = await apiClient.get('/invoices')
@@ -10,3 +10,20 @@ export const fetchInvoiceById = async (id: number): Promise => {
const response = await apiClient.get(`/invoices/${id}`)
return response.data
}
+
+export const createInvoice = async (invoice: CreateInvoiceInput): Promise => {
+ const response = await apiClient.post('/invoices', invoice)
+ return response.data
+}
+
+export const updateInvoice = async (
+ id: number,
+ invoice: UpdateInvoiceInput,
+): Promise => {
+ const response = await apiClient.put(`/invoices/${id}`, invoice)
+ return response.data
+}
+
+export const deleteInvoice = async (id: number): Promise => {
+ await apiClient.delete(`/invoices/${id}`)
+}
diff --git a/react-app/src/types/invoice.ts b/react-app/src/types/invoice.ts
index bd98d5e..1e84508 100644
--- a/react-app/src/types/invoice.ts
+++ b/react-app/src/types/invoice.ts
@@ -7,3 +7,7 @@ export type Invoice = {
status: InvoiceStatus
dueDate: string
}
+
+export type CreateInvoiceInput = Omit
+
+export type UpdateInvoiceInput = Partial