From 552e3d3cd8fa14f85d6fa24a878bdeac8d80f439 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Fri, 9 Oct 2020 15:21:10 +0300 Subject: [PATCH] Support emailing quotes --- lib/data/repositories/credit_repository.dart | 28 +++++++++++++------- lib/data/repositories/quote_repository.dart | 22 ++++++++------- 2 files changed, 31 insertions(+), 19 deletions(-) diff --git a/lib/data/repositories/credit_repository.dart b/lib/data/repositories/credit_repository.dart index af1b79358..8a5adc112 100644 --- a/lib/data/repositories/credit_repository.dart +++ b/lib/data/repositories/credit_repository.dart @@ -74,20 +74,28 @@ class CreditRepository { return creditResponse.data; } - Future emailCredit(Credentials credentials, InvoiceEntity credit, - EmailTemplate template, String subject, String body) async { + Future emailCredit( + Credentials credentials, + InvoiceEntity credit, + EmailTemplate template, + String subject, + String body) async { final data = { - //'reminder': template == EmailTemplate.initial ? '' : template.toString(), - 'template': { - 'body': body, - 'subject': subject, - } + 'entity': '${credit.entityType}', + 'entity_id': credit.id, + 'template': 'email_template_$template', + 'body': body, + 'subject': subject, }; - await webClient.post( - credentials.url + '/email_invoice?invoice_id=${credit.id}', - credentials.token, + final dynamic response = await webClient.post( + credentials.url + '/emails', credentials.token, data: json.encode(data)); + + final InvoiceItemResponse invoiceResponse = + serializers.deserializeWith(InvoiceItemResponse.serializer, response); + + return invoiceResponse.data; } Future uploadDocument( diff --git a/lib/data/repositories/quote_repository.dart b/lib/data/repositories/quote_repository.dart index 0ee86363f..ebf432167 100644 --- a/lib/data/repositories/quote_repository.dart +++ b/lib/data/repositories/quote_repository.dart @@ -75,20 +75,24 @@ class QuoteRepository { return quoteResponse.data; } - Future emailQuote(Credentials credentials, InvoiceEntity quote, + Future emailQuote(Credentials credentials, InvoiceEntity quote, EmailTemplate template, String subject, String body) async { final data = { - //'reminder': template == EmailTemplate.initial ? '' : template.toString(), - 'template': { - 'body': body, - 'subject': subject, - } + 'entity': '${quote.entityType}', + 'entity_id': quote.id, + 'template': 'email_template_$template', + 'body': body, + 'subject': subject, }; - await webClient.post( - credentials.url + '/email_invoice?invoice_id=${quote.id}', - credentials.token, + final dynamic response = await webClient.post( + credentials.url + '/emails', credentials.token, data: json.encode(data)); + + final InvoiceItemResponse invoiceResponse = + serializers.deserializeWith(InvoiceItemResponse.serializer, response); + + return invoiceResponse.data; } Future uploadDocument(