def edit_company(_id: str, **new_values): if not get_company(_id): raise ValueError( 'Company id "{company_id}" does not exists'.format(company_id=_id)) exploded_values = dict_to_datapath(new_values) companies.update({"_id": _id}, {"$set": exploded_values}) return get_company(_id)
def test_enable_disable_company(self): enable_company(_id=self.company['_id']) company = get_company(self.company['_id']) self.assertTrue(company['enabled']) self.mock_send_email_company_approved\ .assert_called_once_with(company_id=self.company['_id']) disable_company(_id=self.company['_id']) company = get_company(self.company['_id']) self.assertFalse(company['enabled']) enable_company(_id=self.company['_id']) company = get_company(self.company['_id']) self.assertTrue(company['enabled'])
def sign_in_company(): data = request.json validate('sign_in_company', data) data = request.json hm_data = { "username": data.get('hm_email'), "password": data.get('hm_password'), "first_name": data.get('hm_first_name'), "last_name": data.get('hm_last_name'), "title": data.get('hm_title') } company_user = user.create_user(user_type=UserType.HIRING_MANAGER, **hm_data) company_data = { "name": data.get('company_name'), "description": data.get('company_description'), "contacts": { "email": data.get('hm_email') } } created_company = company.create_company_hiring_manager( admin_user_id=company_user['_id'], **company_data) return get_company(created_company['_id'])
def send_email_company_approved(company_id): sendgrid_settings = SendgridConfig() company = get_company(company_id=company_id) send_email(from_email=sendgrid_settings.admin_email_address, to_emails=company['contacts']['email'], template_id=sendgrid_settings.company_accepted_template, api_key=sendgrid_settings.api_key, template_data={'company': company})
def test_enable_disable_company(self): company = self.create_from_factory(CompanyFactory) self.assertFalse(company['enabled']) url = self.url_for_admin(COMPANY_ACTIONS_URL, action='enable', company_id=company['_id']) self.post_json(url) company = get_company(company['_id']) self.assertTrue(company['enabled']) url = self.url_for_admin(COMPANY_ACTIONS_URL, action='disable', company_id=company['_id']) self.post_json(url) company = get_company(company['_id']) self.assertFalse(company['enabled'])
def _assert_create_company(self, user, create_fn, is_admin=False): create_company_input = load_example_model('create_company_input') company = create_fn(admin_user_id=user['_id'], **create_company_input) expected_ids = [user['_id'], company['contacts']['email']] \ if is_admin else [user['_id']] expected_company = { '_id': company['_id'], 'hire_managers_ids': expected_ids, 'admin_user_ids': expected_ids } expected_company.update(create_company_input) expected_company['enabled'] = is_admin created_company = get_company(company['_id']) self.assertIsNotNone(created_company['_id']) self.assertEqual(expected_company, created_company) return created_company
def send_email_advert_approved(job_id): sendgrid_settings = SendgridConfig() job = get_job(job_id=job_id) company = get_company(company_id=job['company_id']) send_email(from_email=sendgrid_settings.admin_email_address, to_emails=company['contacts']['email'], template_id=sendgrid_settings.advert_approved_template, api_key=sendgrid_settings.api_key, template_data={ 'company': company, 'job': { 'title': job['title'], 'description': job['description'] } })
def upload_company_logo(company_id): if 'file' not in request.files: raise ParametersException("The field `file` is required") identity = get_jwt_identity() if identity['role'] == UserType.CANDIDATE: raise UnauthorizedException() elif identity['role'] == UserType.HIRING_MANAGER: user_company = get_company(company_id=company_id) if not user_company: raise ParametersException("Invalid company id") if identity['username'] not in user_company['admin_user_ids']: raise UnauthorizedException() file = request.files['file'] company.store_company_logo(company_id=company_id, file=file.stream) return None
def _validate_company_id(company_id): if not get_company(company_id): raise ValueError('The company_id `{company_id}` is invalid'.format( company_id=company_id))
def get_company(company_id): return company.get_company(company_id=company_id)