summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-01-09 17:10:02 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-01-09 17:10:02 +0700
commitb1329f940ae66b60185fa097012393b0d51b9e5f (patch)
treee57fd41c83766b49eb49f871f809ed79add5b5bc /indoteknik_api/controllers/api_v1
parent1dc28b23e2acc12d1607f4331a22147c3ef1f152 (diff)
API get city, district, sub-district
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.py26
-rw-r--r--indoteknik_api/controllers/api_v1/district.py30
-rw-r--r--indoteknik_api/controllers/api_v1/sub_district.py30
4 files changed, 89 insertions, 0 deletions
diff --git a/indoteknik_api/controllers/api_v1/__init__.py b/indoteknik_api/controllers/api_v1/__init__.py
index 571f2900..03737d9d 100644
--- a/indoteknik_api/controllers/api_v1/__init__.py
+++ b/indoteknik_api/controllers/api_v1/__init__.py
@@ -2,12 +2,15 @@ from . import banner
from . import blog
from . import cart
from . import category
+from . import city
+from . import district
from . import flash_sale
from . import manufacture
from . import product_variant
from . import product
from . import promotion
from . import sale_order
+from . import sub_district
from . import user
from . import wishlist
from . import brand_homepage
diff --git a/indoteknik_api/controllers/api_v1/city.py b/indoteknik_api/controllers/api_v1/city.py
new file mode 100644
index 00000000..773cd483
--- /dev/null
+++ b/indoteknik_api/controllers/api_v1/city.py
@@ -0,0 +1,26 @@
+from .. import controller
+from odoo import http
+from odoo.http import request
+
+class City(controller.Controller):
+ prefix = '/api/v1/'
+
+ @http.route(prefix + 'city', auth='public', methods=['GET', 'OPTIONS'])
+ def get_city(self, **kw):
+ if not self.authenticate():
+ return self.response(code=401, description='Unauthorized')
+
+ parameters = []
+
+ name = kw.get('name')
+ if name:
+ name = '%' + name.replace(' ', '%') + '%'
+ parameters.append(('name', 'ilike', name))
+
+ cities = request.env['vit.kota'].search(parameters)
+ data = []
+ for city in cities:
+ data.append({ 'id': city.id, 'name': city.name })
+
+ return self.response(data)
+
diff --git a/indoteknik_api/controllers/api_v1/district.py b/indoteknik_api/controllers/api_v1/district.py
new file mode 100644
index 00000000..8240ac3b
--- /dev/null
+++ b/indoteknik_api/controllers/api_v1/district.py
@@ -0,0 +1,30 @@
+from .. import controller
+from odoo import http
+from odoo.http import request
+
+class District(controller.Controller):
+ prefix = '/api/v1/'
+
+ @http.route(prefix + 'district', auth='public', methods=['GET', 'OPTIONS'])
+ def get_district(self, **kw):
+ if not self.authenticate():
+ return self.response(code=401, description='Unauthorized')
+
+ parameters = []
+
+ name = kw.get('name')
+ if name:
+ name = '%' + name.replace(' ', '%') + '%'
+ parameters.append(('name', 'ilike', name))
+
+ city_id = kw.get('city_id')
+ if city_id:
+ parameters.append(('kota_id', '=', int(city_id)))
+
+ districts = request.env['vit.kecamatan'].search(parameters)
+ data = []
+ for district in districts:
+ data.append({ 'id': district.id, 'name': district.name })
+
+ return self.response(data)
+
diff --git a/indoteknik_api/controllers/api_v1/sub_district.py b/indoteknik_api/controllers/api_v1/sub_district.py
new file mode 100644
index 00000000..706cc660
--- /dev/null
+++ b/indoteknik_api/controllers/api_v1/sub_district.py
@@ -0,0 +1,30 @@
+from .. import controller
+from odoo import http
+from odoo.http import request
+
+class SubDistrict(controller.Controller):
+ prefix = '/api/v1/'
+
+ @http.route(prefix + 'sub_district', auth='public', methods=['GET', 'OPTIONS'])
+ def get_sub_district(self, **kw):
+ if not self.authenticate():
+ return self.response(code=401, description='Unauthorized')
+
+ parameters = []
+
+ name = kw.get('name')
+ if name:
+ name = '%' + name.replace(' ', '%') + '%'
+ parameters.append(('name', 'ilike', name))
+
+ district_id = kw.get('district_id')
+ if district_id:
+ parameters.append(('kecamatan_id', '=', int(district_id)))
+
+ sub_districts = request.env['vit.kelurahan'].search(parameters)
+ data = []
+ for sub_district in sub_districts:
+ data.append({ 'id': sub_district.id, 'name': sub_district.name })
+
+ return self.response(data)
+