diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-01-09 17:10:02 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-01-09 17:10:02 +0700 |
| commit | b1329f940ae66b60185fa097012393b0d51b9e5f (patch) | |
| tree | e57fd41c83766b49eb49f871f809ed79add5b5bc /indoteknik_api/controllers/api_v1 | |
| parent | 1dc28b23e2acc12d1607f4331a22147c3ef1f152 (diff) | |
API get city, district, sub-district
Diffstat (limited to 'indoteknik_api/controllers/api_v1')
| -rw-r--r-- | indoteknik_api/controllers/api_v1/__init__.py | 3 | ||||
| -rw-r--r-- | indoteknik_api/controllers/api_v1/city.py | 26 | ||||
| -rw-r--r-- | indoteknik_api/controllers/api_v1/district.py | 30 | ||||
| -rw-r--r-- | indoteknik_api/controllers/api_v1/sub_district.py | 30 |
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) + |
