summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2024-10-07 14:57:50 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2024-10-07 14:57:50 +0700
commitde72aa77b725cda13a5cf208b7b940599fa9f6f9 (patch)
tree079c9f6cea6182a533ec125151a3927921bdaddf /indoteknik_api/controllers/api_v1
parentc67ec730efe048bce9872930841765d919956e15 (diff)
cr state_id
Diffstat (limited to 'indoteknik_api/controllers/api_v1')
-rw-r--r--indoteknik_api/controllers/api_v1/__init__.py3
-rw-r--r--indoteknik_api/controllers/api_v1/city.py12
-rw-r--r--indoteknik_api/controllers/api_v1/partner.py7
-rw-r--r--indoteknik_api/controllers/api_v1/state.py24
4 files changed, 39 insertions, 7 deletions
diff --git a/indoteknik_api/controllers/api_v1/__init__.py b/indoteknik_api/controllers/api_v1/__init__.py
index 2d774071..6f27eec5 100644
--- a/indoteknik_api/controllers/api_v1/__init__.py
+++ b/indoteknik_api/controllers/api_v1/__init__.py
@@ -28,4 +28,5 @@ from . import midtrans
from . import wati
from . import courier
from . import voucher
-from . import stock_picking \ No newline at end of file
+from . import stock_picking
+from . import state \ No newline at end of file
diff --git a/indoteknik_api/controllers/api_v1/city.py b/indoteknik_api/controllers/api_v1/city.py
index 6e0e3edb..afe92c4a 100644
--- a/indoteknik_api/controllers/api_v1/city.py
+++ b/indoteknik_api/controllers/api_v1/city.py
@@ -15,10 +15,16 @@ class City(controller.Controller):
name = '%' + name.replace(' ', '%') + '%'
parameters.append(('name', 'ilike', name))
- cities = request.env['vit.kota'].search(parameters)
+ state_id = kw.get('state_id')
+ if state_id:
+ parameters.append(('state_id', '=', int(state_id)))
+
+ districts = request.env['vit.kota'].search(parameters)
data = []
- for city in cities:
- data.append({ 'id': city.id, 'name': city.name })
+ for district in districts:
+ data.append({ 'id': district.id, 'name': district.name })
return self.response(data)
+
+
diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py
index 9d392c53..a7925a02 100644
--- a/indoteknik_api/controllers/api_v1/partner.py
+++ b/indoteknik_api/controllers/api_v1/partner.py
@@ -69,6 +69,7 @@ class Partner(controller.Controller):
'mobile': ['required'],
'phone': [''],
'street': ['required'],
+ 'state_id': ['required', 'number', 'alias:state_id'],
'city_id': ['required', 'number', 'alias:kota_id'],
'district_id': ['number', 'alias:kecamatan_id'],
'sub_district_id': ['number', 'alias:kelurahan_id', 'exclude_if_null'],
@@ -82,7 +83,7 @@ class Partner(controller.Controller):
partner = request.env[self._name].search([('id', '=', params['value']['id'])], limit=1)
if not partner:
return self.response(code=404, description='User not found')
-
+
partner.write(params['value'])
return self.response({
@@ -100,11 +101,11 @@ class Partner(controller.Controller):
'mobile': ['required'],
'phone': [''],
'street': ['required'],
+ 'state_id': ['required', 'number', 'alias:state_id'],
'city_id': ['required', 'number', 'alias:kota_id'],
'district_id': ['number', 'alias:kecamatan_id'],
'sub_district_id': ['number', 'alias:kelurahan_id', 'exclude_if_null'],
- 'zip': ['required'],
- 'state_id': ['required']
+ 'zip': ['required']
})
if not params['valid']:
diff --git a/indoteknik_api/controllers/api_v1/state.py b/indoteknik_api/controllers/api_v1/state.py
new file mode 100644
index 00000000..598ef70b
--- /dev/null
+++ b/indoteknik_api/controllers/api_v1/state.py
@@ -0,0 +1,24 @@
+from .. import controller
+from odoo import http
+from odoo.http import request
+
+class District(controller.Controller):
+ prefix = '/api/v1/'
+
+ @http.route(prefix + 'state', auth='public', methods=['GET', 'OPTIONS'])
+ @controller.Controller.must_authorized()
+ def get_state(self, **kw):
+ parameters = []
+
+ name = kw.get('name')
+ if name:
+ name = '%' + name.replace(' ', '%') + '%'
+ parameters.append(('name', 'ilike', name))
+
+ states = request.env['res.country.state'].search(parameters)
+ data = []
+ for state in states:
+ data.append({ 'id': state.id, 'name': state.name })
+
+ return self.response(data)
+