def add_contact(token, contact_info: dict, throw_error_for_duplicates: bool = True): """Add contact information for an existing user.""" current_app.logger.debug('add_contact') user = UserModel.find_by_jwt_token(token) if user is None: raise BusinessException(Error.DATA_NOT_FOUND, None) # check for existing contact (we only want one contact per user) contact_link = ContactLinkModel.find_by_user_id(user.id) if contact_link is not None: if not throw_error_for_duplicates: # TODO may be throw whole object return None raise BusinessException(Error.DATA_ALREADY_EXISTS, None) contact = ContactModel(**camelback2snake(contact_info)) contact = contact.flush() contact_link = ContactLinkModel() contact_link.user = user contact_link.contact = contact contact_link.save() return ContactService(contact)
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 factory_contact_model(): """Return a valid contact object with the provided fields.""" contact_info = { 'email': '*****@*****.**', 'phone': '(555) 555-5555', 'phoneExtension': '123' } contact = ContactModel(email=contact_info['email']) contact.save() return contact
def test_find_by_entity_id(session): """Assert that a Contact can be retrieved via the entity id.""" entity = EntityModel(business_identifier='CP1234567') session.add(entity) contact = ContactModel(entity_id=entity.id) session.add(contact) result_contact = ContactModel.find_by_entity_id(entity_id=entity.id) assert result_contact is not None
def add_contact(self, contact_info: dict): """Add a business contact to this entity.""" # check for existing contact (we only want one contact per user) contact_link = ContactLinkModel.find_by_entity_id(self._model.id) if contact_link is not None: raise BusinessException(Error.DATA_ALREADY_EXISTS, None) contact = ContactModel(**camelback2snake(contact_info)) contact.commit() contact_link = ContactLinkModel() contact_link.contact = contact contact_link.entity = self._model contact_link.commit() return self
def add_contact(self, contact_info): """Create a new contact for this org.""" # check for existing contact (only one contact per org for now) current_app.logger.debug('>add_contact ') contact_link = ContactLinkModel.find_by_org_id(self._model.id) if contact_link is not None: raise BusinessException(Error.DATA_ALREADY_EXISTS, None) contact = ContactModel(**camelback2snake(contact_info)) contact.commit() contact_link = ContactLinkModel() contact_link.contact = contact contact_link.org = self._model contact_link.commit() current_app.logger.debug('>add_contact ') return self
def test_contact(session): """Assert that a Contact can be stored in the database.""" contact = ContactModel( street='123 Roundabout Lane', street_additional='Unit 1', city='Victoria', region='British Columbia', country='CA', postal_code='V1A 1A1', delivery_instructions='Ring buzzer 123', phone='111-222-3333', phone_extension='123', email='*****@*****.**' ) session.add(contact) session.commit() assert contact.id is not None
def add_contact(token, contact_info: dict): """Add or update contact information for an existing user.""" user = UserModel.find_by_jwt_token(token) if user is None: raise BusinessException(Error.DATA_NOT_FOUND, None) # check for existing contact (we only want one contact per user) contact_link = ContactLinkModel.find_by_user_id(user.id) if contact_link is not None: raise BusinessException(Error.DATA_ALREADY_EXISTS, None) contact = ContactModel(**camelback2snake(contact_info)) contact.commit() contact_link = ContactLinkModel() contact_link.user = user contact_link.contact = contact contact_link.commit() return User(user)
def add_contact(org_id, contact_info): """Create a new contact for this org.""" # check for existing contact (only one contact per org for now) current_app.logger.debug('>add_contact') org = OrgModel.find_by_org_id(org_id) if org is None: raise BusinessException(Error.DATA_NOT_FOUND, None) contact_link = ContactLinkModel.find_by_org_id(org_id) if contact_link is not None: raise BusinessException(Error.DATA_ALREADY_EXISTS, None) contact = ContactModel(**camelback2snake(contact_info)) contact = contact.flush() contact_link = ContactLinkModel() contact_link.contact = contact contact_link.org = org contact_link.save() current_app.logger.debug('<add_contact') return ContactService(contact)
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)
def factory_contact_model(contact_info: dict = TestContactInfo.contact1): """Return a valid contact object with the provided fields.""" contact = ContactModel(email=contact_info['email']) contact.save() return contact