diff options
| author | IT Fixcomart <it@fixcomart.co.id> | 2023-01-13 04:41:16 +0000 |
|---|---|---|
| committer | IT Fixcomart <it@fixcomart.co.id> | 2023-01-13 04:41:16 +0000 |
| commit | 45b8c4757ba6107037c3e1f1e2a64c9e47e8ae48 (patch) | |
| tree | 7d088c21df7a7ac74d896259aefa94d940920294 /indoteknik_api/controllers/api_v1/partner.py | |
| parent | 0f8fbe56e89ec285c6fbcdd2bed5a67f62bcfe59 (diff) | |
| parent | 6fe453ed5da6cfda56f4af454dbedc00b97f0f9e (diff) | |
Merged in staging (pull request #19)
Staging
Diffstat (limited to 'indoteknik_api/controllers/api_v1/partner.py')
| -rw-r--r-- | indoteknik_api/controllers/api_v1/partner.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py new file mode 100644 index 00000000..043a82b8 --- /dev/null +++ b/indoteknik_api/controllers/api_v1/partner.py @@ -0,0 +1,37 @@ +from .. import controller +from odoo import http +from odoo.http import request + + +class Partner(controller.Controller): + prefix = '/api/v1/' + + @http.route(prefix + 'partner', auth='public', methods=['POST', 'OPTIONS'], csrf=False) + def create_partner(self, **kw): + if not self.authenticate(): + return self.response(code=401, description='Unauthorized') + + validate_request = self.get_request_params(kw, { + 'user_id': ['required', 'number'], + 'partner_id': ['required', 'number', 'alias:parent_id'], + 'type': ['default:other'], + 'name': ['required'], + 'email': ['required'], + 'mobile': ['required'], + 'street': ['required'], + 'city_id': ['required', 'number', 'alias:kota_id'], + 'district_id': ['number', 'alias:kecamatan_id'], + 'sub_district_id': ['number', 'alias:kelurahan_id'], + 'zip': ['required'], + }) + + if not validate_request['valid']: + return self.response(code=400, description=validate_request) + + del validate_request['value']['user_id'] + partner = request.env['res.partner'].create([ validate_request['value'] ]) + + return self.response({ + 'id': partner.id, + }) + |
