From a2fcb00365aba739491314feb79d813b6fe095cd Mon Sep 17 00:00:00 2001
From: Tomas Cohen Arazi <tomascohen@theke.io>
Date: Mon, 5 Feb 2018 10:28:37 -0300
Subject: [PATCH] Bug 20134: Remove /api/v1/app.pl from the generated URLs

This patch removes the /api/v1/app.pl prefix from generated baseUrl.
It has the consequence of hardcoding / as the base path for the API.

This is ok because we don't currently support mounting Koha pieces in
different than hardcoded paths (/cgi-bin/koha?), but certainly worth
mentioning because this will need to depend on a syspref or config entry
when someone chages this behviour.

To test:
- On master, point your browser to:
  http://kohadev.mydnsname.org:8080/api/v1/
=> FAIL: basePath looks like /api/v1/app.pl/api/v1
- Apply this patch
- Restart memcached and plack:
  $ restart_all
or
  $ sudo systemctl restart memcached && sudo systemctl restart
  koha-common
- Reload http://kohadev.mydnsname.org:8080/api/v1/
=> SUCCESS: basePath is /api/v1
- Sign off :-D
---
 Koha/REST/V1.pm | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Koha/REST/V1.pm b/Koha/REST/V1.pm
index 398a93cc1a..57ad113291 100644
--- a/Koha/REST/V1.pm
+++ b/Koha/REST/V1.pm
@@ -38,6 +38,11 @@ Overloaded Mojolicious->startup method. It is called at application startup.
 sub startup {
     my $self = shift;
 
+    # Remove /api/v1/app.pl/ from the path
+    $self->hook( before_dispatch => sub {
+        shift->req->url->base->path('/');
+    });
+
     # Force charset=utf8 in Content-Type header for JSON responses
     $self->types->type(json => 'application/json; charset=utf8');
 
-- 
2.16.1