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//', 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')