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)
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)
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)
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)
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)
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)
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)
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)