summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1/download.py
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-02-02 17:12:04 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-02-02 17:12:04 +0700
commit3d402f5a12d50d2264dde918d4b893b9c8943389 (patch)
tree617bb24a36a096f5b315d0e49f38218b37802ec5 /indoteknik_api/controllers/api_v1/download.py
parent6b97d72c91f9a36462d08027660dddab945db01c (diff)
download tax invoice
Diffstat (limited to 'indoteknik_api/controllers/api_v1/download.py')
-rw-r--r--indoteknik_api/controllers/api_v1/download.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/indoteknik_api/controllers/api_v1/download.py b/indoteknik_api/controllers/api_v1/download.py
new file mode 100644
index 00000000..b215a4cd
--- /dev/null
+++ b/indoteknik_api/controllers/api_v1/download.py
@@ -0,0 +1,25 @@
+from .. import controller
+from odoo import http
+from odoo.http import request
+import base64
+
+
+class Download(controller.Controller):
+ PREFIX = '/api/v1/'
+
+ @http.route(PREFIX + 'download/tax-invoice/<id>/<token>', auth='none', method=['GET'])
+ def download_tax_invoice(self, **kw):
+ id = int(kw.get('id', 0))
+ token = kw.get('token', '')
+
+ md5_by_id = request.env['rest.api'].md5_salt(id, 'account.move$')
+ if md5_by_id == token:
+ attachment = request.env['ir.attachment'].sudo().search_read([
+ ('res_model', '=', 'account.move'),
+ ('res_field', '=', 'efaktur_document'),
+ ('res_id', '=', id),
+ ], ['datas', 'mimetype'])
+ attachment = attachment[0]
+ return request.make_response(base64.b64decode(attachment['datas']), [('Content-Type', attachment['mimetype'])])
+
+ return self.response('Tidak diizinkan')