def create_affidavit(token_info: Dict, affidavit_info: Dict): """Create a new affidavit record.""" current_app.logger.debug('<create_affidavit ') user = UserService.find_by_jwt_token(token=token_info) # If the user already have a pending affidavit, raise error existing_affidavit = AffidavitModel.find_pending_by_user_id( user_id=user.identifier) if existing_affidavit is not None: raise BusinessException(Error.ACTIVE_AFFIDAVIT_EXISTS, None) contact = affidavit_info.pop('contact') affidavit_model = AffidavitModel( issuer=affidavit_info.get('issuer'), document_id=affidavit_info.get('documentId'), status_code=AffidavitStatus.PENDING.value, user_id=user.identifier) affidavit_model.add_to_session() # Save contact for the affidavit if contact: contact = ContactModel(**camelback2snake(contact)) contact.add_to_session() contact_link = ContactLinkModel() contact_link.affidavit = affidavit_model contact_link.contact = contact contact_link.add_to_session() affidavit_model.save() return Affidavit(affidavit_model)
def add_contact_to_org(mailing_address, org): """Update the passed organization with the mailing address.""" contact = ContactModel(**camelback2snake(mailing_address)) contact = contact.add_to_session() contact_link = ContactLinkModel() contact_link.contact = contact contact_link.org = org contact_link.add_to_session()
def create_affidavit(affidavit_info: Dict): """Create a new affidavit record.""" current_app.logger.debug('<create_affidavit ') user = UserService.find_by_jwt_token() # If the user already have a pending affidavit, raise error existing_affidavit: AffidavitModel = AffidavitModel.find_pending_by_user_id( user_id=user.identifier) trigger_task_update = False if existing_affidavit is not None: # inactivate the current affidavit existing_affidavit.status_code = AffidavitStatus.INACTIVE.value existing_affidavit.flush() trigger_task_update = True contact = affidavit_info.pop('contact') affidavit_model = AffidavitModel( issuer=affidavit_info.get('issuer'), document_id=affidavit_info.get('documentId'), status_code=AffidavitStatus.PENDING.value, user_id=user.identifier) affidavit_model.add_to_session() # Save contact for the affidavit if contact: contact = ContactModel(**camelback2snake(contact)) contact.add_to_session() contact_link = ContactLinkModel() contact_link.affidavit = affidavit_model contact_link.contact = contact contact_link.add_to_session() affidavit_model.save() if trigger_task_update: Affidavit._modify_task(user) return Affidavit(affidavit_model)