summaryrefslogtreecommitdiff
path: root/indoteknik_api/controllers/api_v1/partner.py
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-09-30 17:29:09 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-09-30 17:29:09 +0700
commit9fca7c59d523c5fd51ca696820b448ebbd8226d4 (patch)
tree83467c1105bc4bfe4e415c0c71acb08dcdd2f699 /indoteknik_api/controllers/api_v1/partner.py
parent3b83868fbdb29e8f5208035e5166a13e5d24f382 (diff)
<iman> update register alamat
Diffstat (limited to 'indoteknik_api/controllers/api_v1/partner.py')
-rw-r--r--indoteknik_api/controllers/api_v1/partner.py27
1 files changed, 23 insertions, 4 deletions
diff --git a/indoteknik_api/controllers/api_v1/partner.py b/indoteknik_api/controllers/api_v1/partner.py
index 663f4d7d..369f2125 100644
--- a/indoteknik_api/controllers/api_v1/partner.py
+++ b/indoteknik_api/controllers/api_v1/partner.py
@@ -72,6 +72,7 @@ class Partner(controller.Controller):
'district_id': ['number', 'alias:kecamatan_id'],
'sub_district_id': ['number', 'alias:kelurahan_id', 'exclude_if_null'],
'zip': ['required'],
+ 'alamat_lengkap_text': []
})
if not params['valid']:
@@ -117,7 +118,7 @@ class Partner(controller.Controller):
@controller.Controller.must_authorized()
def write_partner_by_id(self, **kw):
params = self.get_request_params(kw, {
- 'id': ['required', 'number'],
+ 'id': ['', 'number'],
'name': [],
'company_type_id': ['number'],
'industry_id': ['number'],
@@ -126,9 +127,13 @@ class Partner(controller.Controller):
'alamat_lengkap_text': [],
'street': [],
})
+
+ # Mengambil id_user dari request
id_user = self.get_request_params(kw, {
'id_user': ['number']
})
+
+ # Mengambil parameter user dari request
params_user = self.get_request_params(kw, {
'company_type_id': ['number'],
'industry_id': ['number'],
@@ -137,17 +142,31 @@ class Partner(controller.Controller):
'alamat_lengkap_text': [],
})
+ # Cek validitas parameter
if not params['valid']:
return self.response(code=400, description=params)
+ # Mencari partner dan user berdasarkan ID
partner = request.env[self._name].search([('id', '=', params['value']['id'])], limit=1)
user = request.env[self._name].search([('id', '=', id_user['value']['id_user'])], limit=1)
+
if not partner:
- return self.response(code=404, description='User not found')
+ return self.response(code=404, description='Partner not found')
- partner.write(params['value'])
- user.write(params_user['value'])
+ # Filter parameter yang memiliki nilai saja untuk partner
+ params_filtered = {k: v for k, v in params['value'].items() if v}
+
+ # Filter parameter yang memiliki nilai saja untuk user
+ params_user_filtered = {k: v for k, v in params_user['value'].items() if v}
+
+ # Update partner dan user hanya dengan parameter yang memiliki nilai
+ if params_filtered:
+ partner.write(params_filtered)
+
+ if params_user_filtered:
+ user.write(params_user_filtered)
+ # Return response dengan ID partner yang di-update
return self.response({
'id': partner.id
})