123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #
- # Sample Policy class definition
- #
- from polzybackend.mediators import Policy
- import pms
- class SamplePolicy(Policy):
- def get_partner(self, partner):
- result = {}
- if partner['is_person']:
- result = {
- 'First Name': partner['first_name'],
- 'Last Name': partner['last_name'],
- 'Birthday': partner['birthdate'],
- 'Occupation': partner['occupation'],
- 'Occupation from': partner['occupation_from'],
- 'Previous Occupation': partner['previous_occupation'],
- 'Sports': ', '.join(partner['sports']),
- 'Health Condition': partner['health_condition'],
- }
- else:
- result = {
- 'Company Name': partner.get('company_name'),
- }
- result.update({
- 'Address': partner['address'],
- 'City': partner['city'],
- 'Country': partner['country'],
- 'Postal Code': partner['postal_code'],
- 'E-mail': partner['email'],
- 'Phone (primary)': partner['primary_phone'],
- 'Phone (secondary)': partner['secondary_phone'],
- })
- return result
- def get_insured_object(self, insured_object):
- if insured_object['is_person']:
- result = {'Type': 'Person'}
- result.update(self.get_partner(insured_object['partner']))
- else:
- result = {'Type': insured_object['type']}
- result.update(insured_object['attributes'])
- return result
- def reshape_data(self, data):
- self.data = {key: data[key] for key in data if not key in ['number', 'premium_payer', 'insured_object']}
- self.data['policy_number'] = data['number']
- self.data['premium_payer'] = self.get_partner(data['premium_payer'])
- self.data['insured_object'] = self.get_insured_object(data['insured_object'])
- self.data['possible_activities'] = pms.get_activities(self.data['status'])
- def fetch(self):
- # fetch policy data from Policy Management System
- data = pms.get(self.number, self.effective_date)
- if data:
- # update attributes
- self.number = data['number']
- self.effective_date = data['effective_date']
-
- # reshape data if needed
- self.reshape_data(data)
-
- return True
- return False
- def executeActivity(self, data):
- print(f'*** EXECUTE ACTIVITY:\n{data}')
- return pms.execute_activity(self.number, data)
|