From 33107c7a7ce89b2e853b81253df2bba39fc61b99 Mon Sep 17 00:00:00 2001 From: Matt Brunt Date: Thu, 31 May 2018 12:30:44 +0100 Subject: [PATCH] Add v2 mail merge support --- spec/Vivait/DocBuild/DocBuildSpec.php | 19 ++++++++++++++++++- src/Vivait/DocBuild/DocBuild.php | 9 +++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/spec/Vivait/DocBuild/DocBuildSpec.php b/spec/Vivait/DocBuild/DocBuildSpec.php index 0a601b7..85fe7af 100644 --- a/spec/Vivait/DocBuild/DocBuildSpec.php +++ b/spec/Vivait/DocBuild/DocBuildSpec.php @@ -267,7 +267,7 @@ function it_can_convert_a_doc_to_pdf(HttpAdapter $httpAdapter, Cache $cache) ->shouldReturn($expected); } - function it_can_mail_merge_a_document(HttpAdapter $httpAdapter, Cache $cache) + function it_can_mail_merge_a_document(HttpAdapter $httpAdapter) { $expected = []; @@ -284,6 +284,23 @@ function it_can_mail_merge_a_document(HttpAdapter $httpAdapter, Cache $cache) ->shouldReturn($expected); } + function it_can_mail_merge_a_v2_document(HttpAdapter $httpAdapter) + { + $expected = []; + + $request = [ + 'source' => 'a1ec0371-966d-11e4-baee-08002730eb8a', + 'fields' => ['firstName' => 'Milly', 'lastName' => 'Merged'], + 'callback' => 'http://localhost/test/callback?id=a1ec0371-966d-11e4-baee-08002730eb8a', + 'access_token' => 'myapitoken', + ]; + + $httpAdapter->post('v2/mailmerge', $request, [], HttpAdapter::RETURN_TYPE_JSON)->willReturn($expected); + + $this->v2MailMergeDocument('a1ec0371-966d-11e4-baee-08002730eb8a', ['firstName' => 'Milly', 'lastName' => 'Merged'], 'http://localhost/test/callback?id=a1ec0371-966d-11e4-baee-08002730eb8a') + ->shouldReturn($expected); + } + function it_errors_with_invalid_credentials(HttpAdapter $httpAdapter, Cache $cache) { $this->setClientSecret('anincorrectsecret'); diff --git a/src/Vivait/DocBuild/DocBuild.php b/src/Vivait/DocBuild/DocBuild.php index 7f5d28f..046fee0 100644 --- a/src/Vivait/DocBuild/DocBuild.php +++ b/src/Vivait/DocBuild/DocBuild.php @@ -276,6 +276,15 @@ public function mailMergeDocument($source, Array $fields, $callback = null) ]); } + public function v2MailMergeDocument($source, Array $fields, $callback = null) + { + return $this->post('v2/mailmerge', [ + 'source' => $source, + 'fields' => $fields, + 'callback' => $callback, + ]); + } + public function getHttpAdapter() { return $this->http;