Beispiel #1
0
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'])
Beispiel #3
0
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'])
Beispiel #6
0
 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']
                   }
               })
Beispiel #8
0
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)