# HG changeset patch
# User Houzefa Abbasbhay <houzefa.abba@xcg-consulting.fr>
# Date 1660830673 -7200
#      Thu Aug 18 15:51:13 2022 +0200
# Branch 13.0
# Node ID 3d7d44c259bd1623d3a51312149a0396973f0e3c
# Parent  ebebb649312667d9a8cb4291271dc49c59de471f
Server URL rework: Expect an URL without path

add /api/v1 in the code.

diff --git a/NEWS.rst b/NEWS.rst
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -2,6 +2,13 @@
 NEWS
 ====
 
+13.0.3.3.0
+==========
+
+(port from 11.0.2.8.0)
+
+* Server URL rework: Expect an URL without path, add /api/v1 in the code.
+
 13.0.3.2.0
 ==========
 
diff --git a/__manifest__.py b/__manifest__.py
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -21,7 +21,7 @@
     "name": "Redner",
     "summary": """
 Allows to generate transactional emails and documents in PDF or HTML format""",
-    "version": "13.0.3.2.0",
+    "version": "13.0.3.3.0",
     "category": "Technical",
     "author": "XCG Consulting",
     "website": "http://odoo.consulting/",
diff --git a/redner.py b/redner.py
--- a/redner.py
+++ b/redner.py
@@ -11,6 +11,8 @@
 
 _logger = logging.getLogger(__name__)
 
+REDNER_API_PATH = "api/v1/"
+
 
 class Redner:
     def __init__(self, api_key, server_url, account, timeout):
@@ -19,6 +21,7 @@
         Args:
            api_key(str): provide your Redner API key.
            server_url(str): Redner server URL or socket path.
+               For example: http://localhost:30001/
            timeout(float): Timeout per Redner call, in seconds.
         """
 
@@ -28,12 +31,16 @@
 
         if server_url.startswith("/"):
             self.session = requests_unixsocket.Session()
-            self.server_url = "http+unix://{}/api/".format(
+            self.server_url = "http+unix://{}/".format(
                 quote(server_url, safe="")
             )
         else:
             self.session = requests.sessions.Session()
             self.server_url = server_url
+        if not self.server_url.endswith("/"):
+            self.server_url += "/"
+        self.server_url += REDNER_API_PATH
+
         self.templates = Templates(self)
 
     def call(self, path, http_verb="post", **params):
@@ -154,7 +161,7 @@
             "body-format": body_format,
             "metadata": metadata or {},
         }
-        return self.master.call("v1/render", http_verb="post", **params)
+        return self.master.call("render", http_verb="post", **params)
 
     def account_template_add(
         self,
@@ -198,7 +205,7 @@
             "version": version,
         }
         res = self.master.call(
-            "v1/template/%s" % self.master.account, http_verb="post", **params
+            "template/%s" % self.master.account, http_verb="post", **params
         )
         return res["name"]
 
@@ -246,7 +253,7 @@
             "version": version,
         }
         res = self.master.call(
-            "v1/template/%s/%s" % (self.master.account, template_id),
+            "template/%s/%s" % (self.master.account, template_id),
             http_verb="put",
             **params,
         )
@@ -262,8 +269,7 @@
             dict: API response.
         """
         return self.master.call(
-            "v1/template/%s/%s" % (self.master.account, name),
-            http_verb="delete",
+            "template/%s/%s" % (self.master.account, name), http_verb="delete"
         )
 
     def account_template_varlist(self, name):
@@ -280,4 +286,4 @@
 
         params = {"account": self.master.account, "name": name}
 
-        return self.master.call("v1/varlist", **params)
+        return self.master.call("varlist", **params)