コード例 #1
0
def update_empextra_by_emp(emp_id, ex_id):
    if not request.json:
        abort(400)
    #check to see if there is any empty values
    if not all(len(str(val).strip()) for val in request.json.values()):
        abort(411)
    #check to see if the request has the right type of keys
    result = set(request.json.keys()) - set(
        col.name for col in EmployeeExtra.__mapper__.columns)
    if result:

        return extra_keys_envelop('Keys: {!r} not accepted'.format(', '.join(
            r for r in result)))

    #clearn up the values for string
    #generator expression
    cleaned_json = ((key, val.strip()) if isinstance(val, str) else (key, val)
                    for key, val in request.json.items())
    #this means that it has extra set of keys that is not necessary
    #make the custom query
    inner = ', '.join('{:s} = {!r}'.format(key, val)
                      for key, val in cleaned_json)
    query = '''UPDATE employee_extra SET {:s} WHERE id = {:d}'''.format(
        inner, ex_id)

    #try to executre
    with engine.connect() as con:
        try:
            con.execute(query)
        except IntegrityError as e:
            return record_exists_envelop()
        except Exception as e:
            return fatal_error_envelop()
        else:
            return record_updated_envelop(request.json)
コード例 #2
0
def create_employee_extra(id):
    #cheek to see if ther is json
    if not request.json:
        abort(400)
    #if there is json,  if there are required fields
    required_keys = set(col.name for col in EmployeeExtra.__mapper__.columns) - {'id', 'employee_id'}
    
    
    #keys from the rquest object
    result = request.json.keys() - required_keys
    
    #if there is extra remaining keys , abort
    if result:
        return extra_keys_envelop('keys not accepeted %r' % result)
    
    #check to see if there are any valuekjdhflkjadsfaklsdhfkajsds less than 1
    if not all(len(str(val).strip())>=1 for val in request.json.values()):
        return length_require_envelop()
    #clearn up the dictionary
    json_vals = {key : val.strip() if isinstance(val, str) else val for key, val in request.json.items()}
    
    #try to insert to database
    try:
        db_session.add(EmployeeExtra(**json_vals, employee_id=id))
        db_session.commit()
    except IntegrityError as e:
        
        return record_exists_envelop()
    except Exception as e:
        raise e
        return fatal_error_envelop()
    else:
        return record_created_envelop(request.json) 
コード例 #3
0
def create_emp_position():
    if not request.json:
        abort(401)
    required_fields = set(col.name for col in EmployeePosition.__mapper__.columns) - {'id', 'emp_pos_title_display_name', 'del_flag'}
    
    extra_fields = set(request.json) - required_fields
    if extra_fields:
        return extra_keys_envelop('Unknown Keys : %s' % ', '.join(key for key in extra_fields))
    
    _required = required_fields - set(request.json)

    if _required:
       return missing_keys_envelop('Required Keys : %s' % ', '.join(key for key in _required))
    
    #check to see if there is any blank 

    if not all(len(val.strip()) >= 1 for key, val in request.json.items() if isinstance(val, str)):
        return length_require_envelop()
    #inject 
    
    request.json['emp_pos_title_display_name'] = request.json['emp_pos_title']
    request.json['emp_pos_title'] = request.json['emp_pos_title'].lower().strip()
    #initiate the dession
    try:
        e_type = EmployeePosition(**request.json)
        db_session.add(e_type)
        db_session.commit()
    except IntegrityError as e:
        return record_exists_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        return record_created_envelop(request.json)
コード例 #4
0
        def _wrapper(*args, **kwargs):

            fields_db = set(col.name for col in model.__mapper__.columns)
            if not request.json:
                abort(400)
            required_keys = fields_db - set(_exclude) if _exclude else set()
            result = request.json.keys() - required_keys
            if result:
                return extra_keys_envelop('Keys not Accepeted %r' % (', '.join(key for key in result)))
            #check if there are any missing keys
            
            if not all(len(str(val).strip()) >= 1 for val in request.json.values()):
                return length_require_envelop()
            #everythin is okay return the function
            return func(*args, **kwargs)
コード例 #5
0
def update_empextra_by_emp(emp_id):
    if not request.json:
        abort(400)
    #check to see if there is any empty values
    if not all(len(str(val).strip()) for val in request.json.values()):
        abort(411)
    #check to see if the request has the right type of keys
    result = set(request.json.keys()) - set(
        col.name for col in EmployeeExtra.__mapper__.columns)
    if result:

        return extra_keys_envelop('Keys: {!r} not accepted'.format(', '.join(
            r for r in result)))

    #clearn up the values for string
    #generator expression
    cleaned_json = ((key, val.strip()) if isinstance(val, str) else (key, val)
                    for key, val in request.json.items())
    #this means that it has extra set of keys that is not necessary
    #make the custom query

    cleaned_json = dict(cleaned_json)
    cleaned_json['employee_id'] = emp_id

    #try to executre

    try:

        nr = db_session.query(EmployeeExtra).filter(
            EmployeeExtra.employee_id == emp_id).update(dict(cleaned_json))
        print(nr)
        if nr == 0:
            #that means there is no data for that employee so add the data
            db_session.add(EmployeeExtra(**cleaned_json))
            #db_session.commit()

        db_session.commit()
    except NoResultFound as e:

        return record_notfound_envelop()
    except IntegrityError as e:
        raise
        return record_exists_envelop()
    except Exception as e:
        return fatal_error_envelop()
    else:
        return record_updated_envelop(request.json)
コード例 #6
0
ファイル: branches.py プロジェクト: RobusGauli/hris_28
        def wrapper(*args, **kwargs):
            if not request.json:
                abort(400)

            db_fields = set(col.name for col in model.__mapper__.columns)
            required_fields = db_fields - set(
                exclude) if exclude is not None else set()

            result = set(request.json.keys()) - required_fields
            if result:
                return extra_keys_envelop('Keys not accepted : {!r}'.format(
                    ',  '.join(key for key in result)))

            #now check if there are empty fieldsc

            #if not all(len(str(val).strip()) >=1 for val in request.json.values()):
            #   return length_require_envelop()

            #if everythin is fine then return the function
            return func(*args, **kwargs)
コード例 #7
0
def update_agency(a_id):

    #checck to see if there is json data
    if not request.json:
        abort(400)
    db_fields = set(
        col.name for col in Branch.__mapper__.columns) - {'id', 'is_branch'}
    result = set(request.json.keys()) - db_fields
    if result:
        return extra_keys_envelop('Keys not accepted %r' %
                                  (', '.join(key for key in result)))

    #now check if there are any missing values whose length is less than 2
    if not all(len(str(val).strip()) >= 1 for val in request.json.values()):
        return length_require_envelop()

    json_request = dict(copy.deepcopy(request.json))

    facility_display_name = request.json.get('facility_name', None)
    if facility_display_name is not None:

        facility_name = facility_display_name.strip().replace(' ', '').lower()
        json_request['facility_name'] = facility_name
        json_request['facility_display_name'] = facility_display_name.strip()

    inner = ', '.join('{:s} = {!r}'.format(key, val)
                      for key, val in json_request.items())
    query = '''UPDATE branches SET {:s} where id = {:d}'''.format(inner, a_id)
    print(query)

    with engine.connect() as con:
        try:
            con.execute(query)
        except IntegrityError as e:
            return record_exists_envelop()
        except Exception as e:
            raise
            return fatal_error_envelop()
        else:
            return record_updated_envelop(json_request)
コード例 #8
0
ファイル: branches.py プロジェクト: RobusGauli/hris_28
def create_agencytypes():
    """
    This is used to create a new agency type.
    Call this api to create a new agency type.
    ---
    tags:
      - Create a Agency Type
    parameters:
      - name: language
        in: path
        type: string
        required: true
        description: The language name
      - name: size
        in: query
        type: integer
        description: size of awesomeness
    responses:
      500:
        description: Error The language is not awesome!
      200:
        description: A language with its awesomeness
        schema:
          id: awesome
          properties:
            language:
              type: string
              description: The language name
              default: Lua
            features:
              type: array
              description: The awesomeness list
              items:
                type: string
              default: ["perfect", "simple", "lovely"]

    """
    if not request.json:
        abort(400)
    #check for the empty fields
    if not all(
            len(val.strip()) >= 1
            for val in request.json.values() if isinstance(val, str)):
        return length_require_envelop()
    #now check if there is any extra keys
    from_db = set(request.json.keys()) - {'name', 'code', 'del_flag'}
    if from_db:
        return extra_keys_envelop('Extra keys : %s' % ', '.join(from_db))

    required_keys = {'name', 'code'} - set(request.json.keys())
    if required_keys:
        return keys_require_envelop('Keys required : %s' %
                                    ', '.join(required_keys))

    #if everythin is fine
    if 'name' in request.json:
        request.json['display_name'] = request.json['name'].strip()
        request.json['name'] = request.json['name'].lower().strip()

    if 'code' in request.json:
        request.json['code'] = request.json['code'].strip()

    try:
        db_session.add(AgencyType(**request.json))
        db_session.commit()
    except IntegrityError:
        return record_exists_envelop()
    except Exception:
        return fatal_error_envelop()
    else:
        return record_created_envelop(request.json)