From cbc41d6fc6126ba630dcfedda55694af3e5b23bc Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Fri, 27 Jan 2023 09:25:10 +0700 Subject: change thumbnail blog to api ir attachment --- indoteknik_api/models/blog_post.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/indoteknik_api/models/blog_post.py b/indoteknik_api/models/blog_post.py index 2a82c23c..079181e2 100644 --- a/indoteknik_api/models/blog_post.py +++ b/indoteknik_api/models/blog_post.py @@ -9,7 +9,8 @@ class BlogPost(models.Model): base_url = self.env['ir.config_parameter'].get_param('web.base.url') data = { 'id': blog.id, - 'thumbnail': base_url + 'api/image/blog.post/thumbnail/' + str(blog.id) if blog.thumbnail else '', + # 'thumbnail': base_url + 'api/image/blog.post/thumbnail/' + str(blog.id) if blog.thumbnail else '', + 'thumbnail': self.env['ir.attachment'].api_image('blog.post', 'thumbnail', blog.id), 'title': blog.name, 'category': {}, 'author': {}, -- cgit v1.2.3 From 46cc2c3deb299cc61c14a0675221b811aaf999b8 Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Fri, 27 Jan 2023 10:42:46 +0700 Subject: initial commit for midtrans development --- indoteknik_api/controllers/api_v1/__init__.py | 1 + indoteknik_api/controllers/api_v1/midtrans.py | 34 +++++++++++++++++++++++++ indoteknik_api/controllers/api_v1/sale_order.py | 2 +- indoteknik_custom/models/midtrans.py | 32 +++++++++++++++++++++++ 4 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 indoteknik_api/controllers/api_v1/midtrans.py create mode 100644 indoteknik_custom/models/midtrans.py diff --git a/indoteknik_api/controllers/api_v1/__init__.py b/indoteknik_api/controllers/api_v1/__init__.py index a4776503..ab499443 100644 --- a/indoteknik_api/controllers/api_v1/__init__.py +++ b/indoteknik_api/controllers/api_v1/__init__.py @@ -18,3 +18,4 @@ from . import wishlist from . import brand_homepage from . import customer from . import content +from . import midtrans diff --git a/indoteknik_api/controllers/api_v1/midtrans.py b/indoteknik_api/controllers/api_v1/midtrans.py new file mode 100644 index 00000000..9a0ca50e --- /dev/null +++ b/indoteknik_api/controllers/api_v1/midtrans.py @@ -0,0 +1,34 @@ +from .. import controller +from odoo import http +from odoo.http import request +import json + + +class Midtrans(controller.Controller): + prefix = '/api/v1/' + + @http.route(prefix + 'midtrans/notification', auth='none', type='json', csrf=False, cors='*', methods=['POST', 'OPTIONS']) + def notification(self, **kw): + json_raw = json.loads(request.httprequest.data) + trx_status = json.loads(request.httprequest.data)['transaction_status'] + order_no = json.loads(request.httprequest.data)['order_id'] + + query = [('name', '=', order_no)] + order = request.env['sale.order'].search(query, limit=1) + order.transaction_status = trx_status + + request.env['midtrans.notification'].create([{ + 'sale_order_id': order.id, + 'json_raw': json_raw, + 'payment_status': trx_status, + }]) + + return + + @http.route(prefix + 'midtrans/recurring', auth='none', type='json', csrf=False, cors='*', methods=['POST', 'OPTIONS']) + def recurring(self, **kw): + json_raw = json.loads(request.httprequest.data) + request.env['midtrans.recurring'].create([{ + 'json_raw': json_raw, + }]) + return diff --git a/indoteknik_api/controllers/api_v1/sale_order.py b/indoteknik_api/controllers/api_v1/sale_order.py index f2ec8dfe..4128d9f9 100644 --- a/indoteknik_api/controllers/api_v1/sale_order.py +++ b/indoteknik_api/controllers/api_v1/sale_order.py @@ -142,7 +142,7 @@ class SaleOrder(controller.Controller): 'partner_purchase_order_file': params['value']['po_file'] } sale_order = request.env['sale.order'].create([[parameters]]) - + var = json.loads(kw.get('transaction_time', '{}')) order_line = json.loads(params['value']['order_line']) parameters = [] for line in order_line: diff --git a/indoteknik_custom/models/midtrans.py b/indoteknik_custom/models/midtrans.py new file mode 100644 index 00000000..9546ff64 --- /dev/null +++ b/indoteknik_custom/models/midtrans.py @@ -0,0 +1,32 @@ +from odoo import fields, models, api +import logging + +_logger = logging.getLogger(__name__) + + +class MidtransNotification(models.Model): + _name = 'midtrans.notification' + + json_raw = fields.Char(string='JSON Raw Text') + sale_order_id = fields.Many2one('sale.order', string='Sales Order') + payment_status = fields.Selection([ + ('pending', 'Pending'), + ('capture', 'Capture'), + ('settlement', 'Settlement'), + ('deny', 'Deny'), + ('cancel', 'Cancel'), + ('expire', 'Expire'), + ('failure', 'Failure'), + ('refund', 'Refund'), + ('chargeback', 'Chargeback'), + ('partial_refund', 'Partial Refund'), + ('partial_chargeback', 'Partial Chargeback'), + ('authorize', 'Authorize'), + ], string='Payment Status', + help='Payment Gateway Status / Midtrans / Web, https://docs.midtrans.com/en/after-payment/status-cycle') + + +class MidtransRecurring(models.Model): + _name = 'midtrans.recurring' + + json_raw = fields.Char(string='JSON Raw Text') \ No newline at end of file -- cgit v1.2.3 From 669b9de298ed3667fc6aaf1e6070604c1799a0a8 Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Fri, 27 Jan 2023 10:56:07 +0700 Subject: bug fix unauthorized sale order --- indoteknik_api/controllers/api_v1/midtrans.py | 4 ++-- indoteknik_custom/models/__init__.py | 1 + indoteknik_custom/security/ir.model.access.csv | 4 +++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/indoteknik_api/controllers/api_v1/midtrans.py b/indoteknik_api/controllers/api_v1/midtrans.py index 9a0ca50e..a5e667cf 100644 --- a/indoteknik_api/controllers/api_v1/midtrans.py +++ b/indoteknik_api/controllers/api_v1/midtrans.py @@ -14,8 +14,8 @@ class Midtrans(controller.Controller): order_no = json.loads(request.httprequest.data)['order_id'] query = [('name', '=', order_no)] - order = request.env['sale.order'].search(query, limit=1) - order.transaction_status = trx_status + order = request.env['sale.order'].sudo().search(query, limit=1) + order.payment_status = trx_status request.env['midtrans.notification'].create([{ 'sale_order_id': order.id, diff --git a/indoteknik_custom/models/__init__.py b/indoteknik_custom/models/__init__.py index c6fb7d4f..121bd0f4 100755 --- a/indoteknik_custom/models/__init__.py +++ b/indoteknik_custom/models/__init__.py @@ -46,3 +46,4 @@ from . import x_partner_purchase_order from . import x_product_tags from . import website_ads from . import leads_monitoring +from . import midtrans diff --git a/indoteknik_custom/security/ir.model.access.csv b/indoteknik_custom/security/ir.model.access.csv index d469aa1e..c755c11a 100755 --- a/indoteknik_custom/security/ir.model.access.csv +++ b/indoteknik_custom/security/ir.model.access.csv @@ -27,4 +27,6 @@ access_website_content,access.website.content,model_website_content,,1,1,1,1 access_invoice_reklas,access.invoice.reklas,model_invoice_reklas,,1,1,1,1 access_custom_mail_marketing,access.custom.mail.marketing,model_custom_mail_marketing,,1,1,1,1 access_website_ads,access.website.ads,model_website_ads,,1,1,1,1 -access_leads_monitoring,access.leads.monitoring,model_leads_monitoring,,1,1,1,1 \ No newline at end of file +access_leads_monitoring,access.leads.monitoring,model_leads_monitoring,,1,1,1,1 +access_midtrans_notification,access.midtrans.notification,model_midtrans_notification,,1,1,1,1 +access_midtrans_recurring,access.midtrans.recurring,model_midtrans_recurring,,1,1,1,1 \ No newline at end of file -- cgit v1.2.3 From daf2b9581e8d1d72a72c7b01e760c4e67407472e Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Fri, 27 Jan 2023 11:05:53 +0700 Subject: add midtrans pay account notification --- indoteknik_api/controllers/api_v1/midtrans.py | 8 ++++++++ indoteknik_custom/models/midtrans.py | 8 +++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/indoteknik_api/controllers/api_v1/midtrans.py b/indoteknik_api/controllers/api_v1/midtrans.py index a5e667cf..fdc801d3 100644 --- a/indoteknik_api/controllers/api_v1/midtrans.py +++ b/indoteknik_api/controllers/api_v1/midtrans.py @@ -32,3 +32,11 @@ class Midtrans(controller.Controller): 'json_raw': json_raw, }]) return + + @http.route(prefix + 'midtrans/payaccount', auth='none', type='json', csrf=False, cors='*', methods=['POST', 'OPTIONS']) + def payaccount(self, **kw): + json_raw = json.loads(request.httprequest.data) + request.env['midtrans.account'].create([{ + 'json_raw': json_raw, + }]) + return \ No newline at end of file diff --git a/indoteknik_custom/models/midtrans.py b/indoteknik_custom/models/midtrans.py index 9546ff64..76dee447 100644 --- a/indoteknik_custom/models/midtrans.py +++ b/indoteknik_custom/models/midtrans.py @@ -29,4 +29,10 @@ class MidtransNotification(models.Model): class MidtransRecurring(models.Model): _name = 'midtrans.recurring' - json_raw = fields.Char(string='JSON Raw Text') \ No newline at end of file + json_raw = fields.Char(string='JSON Raw Text') + + +class MidtransAccount(models.Model): + _name = 'midtrans.account' + + json_raw = fields.Char(string='JSON Raw Text') -- cgit v1.2.3 From 5ddf58175a447ecf728025c8615262a423f1313a Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Fri, 27 Jan 2023 11:07:25 +0700 Subject: add security for midtrans pay account --- indoteknik_custom/security/ir.model.access.csv | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/indoteknik_custom/security/ir.model.access.csv b/indoteknik_custom/security/ir.model.access.csv index c755c11a..83d9e2ed 100755 --- a/indoteknik_custom/security/ir.model.access.csv +++ b/indoteknik_custom/security/ir.model.access.csv @@ -29,4 +29,5 @@ access_custom_mail_marketing,access.custom.mail.marketing,model_custom_mail_mark access_website_ads,access.website.ads,model_website_ads,,1,1,1,1 access_leads_monitoring,access.leads.monitoring,model_leads_monitoring,,1,1,1,1 access_midtrans_notification,access.midtrans.notification,model_midtrans_notification,,1,1,1,1 -access_midtrans_recurring,access.midtrans.recurring,model_midtrans_recurring,,1,1,1,1 \ No newline at end of file +access_midtrans_recurring,access.midtrans.recurring,model_midtrans_recurring,,1,1,1,1 +access_midtrans_account,access.midtrans.account,model_midtrans_account,,1,1,1,1 \ No newline at end of file -- cgit v1.2.3