Hi, glad to be here & learn all about API’s and Postman
Here’s what I’m trying to accomplish:
-
GET
data from Timing App’s API (DONE, testing only) -
POST
that data into my invoicing app Wave to create an invoice. (DONE, testing only)
What I am unclear on is how to migrate/transfer/move the data (duration
of hours, title
or client name) from the GET
in step 1 to the POST
in step 2. I can POST
to Wave and an invoice is created but only with testing code. I am yet to actually merge the GET
& POST
data from actual tracked hours to an actual new invoice.
GET
https://web.timingapp.com/api/v1/time-entries?include_project_data=true
Below is an example of GET
results from Timing App’s API docs.
{
"data": [
{
"self": "/time-entries/3466676958206930176",
"start_date": "2021-02-25T23:17:26.550757+00:00",
"end_date": "2021-02-25T23:32:48.353939+00:00",
"duration": 921.803182,
"project": {
"self": "/projects/1582482660025863380",
"membership_id": null,
"title": "CLIENT NAME",
"title_chain": [
"CLIENT NAME"
],
"color": "#8C4F00FF",
"productivity_score": 1,
"is_archived": false,
"parent": null
},
"title": null,
"notes": null,
"is_running": false,
"creator_name": "[email protected]"
}, . . .
POST
https://gql.waveapps.com/graphql/public
Below is an example of POST
results from Wave API Create Invoice docs.
{
"data": {
"invoiceCreate": {
"didSucceed": true,
"inputErrors": null,
"invoice": {
"id": "QnVzaW5lc3M6YTgyMmRlZDktNjBhYS00NGE2LWJiN2EtYzAxM2VjNjRmMmJkO0ludm9pY2U6MTE0MzYzNjU5MTc2ODYxMjAwMQ==",
"createdAt": "2021-02-26T16:12:19.584Z",
"modifiedAt": "2021-02-26T16:12:19.641Z",
"pdfUrl": "https://example.com",
"viewUrl": "https://example.com",
"status": "DRAFT",
"title": "Invoice",
"subhead": "",
"invoiceNumber": "149",
"invoiceDate": "2021-02-26",
"poNumber": "",
"customer": {
"id": "QnVzaW5lc3M6YTgyMmRlZDktNjBhYS00NGE2LWJiN2EtYzAxM2VjNjRmMmJkO0N1c3RvbWVyOjI1NDk3MzAx",
"name": "CLIENT NAME"
},
"currency": {
"code": "USD"
},
"dueDate": "2021-03-13",
"amountDue": {
"value": "1.00",
"currency": {
"symbol": "$"
}
},
"amountPaid": {
"value": "0.00",
"currency": {
"symbol": "$"
}
},
"taxTotal": {
"value": "0.00",
"currency": {
"symbol": "$"
}
},
"total": {
"value": "45.00",
"currency": {
"symbol": "$"
}
},
"exchangeRate": "1",
"footer": "Thank you very much!",
"memo": "",
"disableCreditCardPayments": true,
"disableBankPayments": false,
"itemTitle": "Services",
"unitTitle": "Hours",
"priceTitle": "Per Hour",
"amountTitle": "Total",
"hideName": false,
"hideDescription": false,
"hideUnit": false,
"hidePrice": false,
"hideAmount": false,
"items": [
{
"product": {
"id": "QnVzaW5lc3M6YTgyMmRlZDktNjBhYS00NGE2LWJiN2EtYzAxM2VjNjRmMmJkO1Byb2R1Y3Q6MzA1MzA5NzM=",
"name": "Plugin Issues"
},
"description": "Hrs from 02/27/19 to 05/30/19",
"quantity": "1",
"price": "1",
"subtotal": {
"value": "1.00",
"currency": {
"symbol": "$"
}
},
"total": {
"value": "1.00",
"currency": {
"symbol": "$"
}
},
"account": {
"id": "QWNjb3VudDo0MjMxMTU1NTE2MzI1NjQ0Njc7QnVzaW5lc3M6YTgyMmRlZDktNjBhYS00NGE2LWJiN2EtYzAxM2VjNjRmMmJk",
"name": "Sales",
"subtype": {
"name": "Income",
"value": "INCOME"
}
},
"taxes": []
}
],
"lastSentAt": null,
"lastSentVia": "NOT_SENT",
"lastViewedAt": null
}
}
}
}
I hope my explanation makes sense of what I’m trying to do
Thank you for your help!