From 53a5f9d2283357dbed0c7eaf3e91f11fdca98be6 Mon Sep 17 00:00:00 2001
From: Tomas Cohen Arazi <tomascohen@theke.io>
Date: Tue, 11 Sep 2018 10:48:15 -0700
Subject: [PATCH] Bug 21334: Add bibliographic content type definitions

This patch adds the following content type definitions, to be used by
endpoint authors implementing MARC-related endpoints:

--------------------------------------
| Content-type             | Alias   |
|--------------------------|---------|
| application/marcxml+xml  | marcxml |
| application/marc-in-json | mij     |
| application/marc         | marc    |
--------------------------------------

Code using this aliases will use them like this:
- Suppose you want to output data in MARCXML format:

my $record = cool_method_that_returns_MARC_RECORD();
return $c->render( status => 200, format => 'marcxml', text => $record->as_xml_record );

Note: 'text' by defaults encodes output as UTF-8. If the encoding is not
UTF-8 you should encode the data on your own.

To test:
- Apply this patches
- Run:
  $ kshell
 k$ prove t/db_dependent/Koha/REST/V1.t
=> SUCCESS: Test pass!
- Sign off :-D

Signed-off-by: Michal Denar <black23@gail.com>
---
 Koha/REST/V1.pm | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/Koha/REST/V1.pm b/Koha/REST/V1.pm
index 57ad113..73eed81 100644
--- a/Koha/REST/V1.pm
+++ b/Koha/REST/V1.pm
@@ -44,7 +44,12 @@ sub startup {
     });
 
     # Force charset=utf8 in Content-Type header for JSON responses
-    $self->types->type(json => 'application/json; charset=utf8');
+    $self->types->type( json    => 'application/json; charset=utf8' );
+    # MARC-related types
+    $self->types->type( marcxml => 'application/marcxml+xml' );
+    $self->types->type( mij     => 'application/marc-in-json' );
+    $self->types->type( marc    => 'application/marc' );
+
 
     my $secret_passphrase = C4::Context->config('api_secret_passphrase');
     if ($secret_passphrase) {
-- 
2.1.4