From 9fca7c59d523c5fd51ca696820b448ebbd8226d4 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Mon, 30 Sep 2024 17:29:09 +0700 Subject: update register alamat --- indoteknik_api/controllers/api_v1/partner.py | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'indoteknik_api/controllers/api_v1/partner.py') 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 }) -- cgit v1.2.3