def get(self): claims = get_jwt_claims() if not claims['is_admin']: return {'message': 'User not authorized to view'} try: # data = _organization_parser.parse_args() data = request.args organization_name = data.get("organization_name") organization_desc = data.get("organization_desc") organization_id = data.get("organization_id") # isactive = data.get("isactive") if organization_id: organizations = OrganizationModel.find_by_organization_id( organization_id) elif organization_name: organizations = OrganizationModel.find_by_organization_name( organization_name) elif organization_desc: organizations = OrganizationModel.find_by_organization_desc( organization_desc) else: organizations = OrganizationModel.find_all() except: organizations = OrganizationModel.find_all() finally: if len(organizations) > 0: resp = [] for organization in organizations: resp.append(organization.json()) return resp, 200 return {'message': 'Organization not found'}, 404
def delete(self): claims = get_jwt_claims() if not claims['is_super_admin']: return {'message': 'Super Admin privilege required.'}, 412 data = _organization_parser.parse_args() try: organization_name = data["organization_name"] except Exception as e: return { "message": f"Organization name missing. {organization_name}" } organization = OrganizationModel.find_by_organization_name( organization_name)[0] if organization: organization.delete_from_db() return {'message': 'Organization deleted.'}, 200 return {'message': 'Organization not found.'}, 404
def put(self): claims = get_jwt_claims() if not claims['is_super_admin']: return {'message': 'Super Admin privilege required.'}, 412 data = _organization_parser.parse_args() for key in data.keys(): if str(data[key]).lower() in ('none', 'null', ''): data[key] = None try: organization_name = data["organization_name"] except Exception as e: return {"message": f"Organization name required. {repr(e)}"} organization = OrganizationModel.find_by_organization_name( organization_name)[0] if organization: organization.set_attribute(data) else: organization = OrganizationModel(**data) organization.save_to_db() return organization.json(), 201
def set_attribute(self, payload): cols = [ 'status', 'first_name', 'last_name', 'gender', 'password', 'mobile', 'designation', 'image', 'type', 'authtoken', 'teacher_code', 'bloodgroup', 'user_role_id', 'organization_id' ] for col in cols: if col in payload.keys(): setattr(self, col, payload[col]) if payload.get('user_role_name'): user_role = UserRoleModel.find_by_role_name( payload['user_role_name']) self.user_role_id = user_role.id if payload.get('organization_name'): organization = OrganizationModel.find_by_organization_name( payload['organization_name']) self.organization_id = organization.id if 'password' in payload.keys(): self.password = md5(str( payload['password']).encode('UTF-8')).hexdigest()
def post(self): claims = get_jwt_claims() if not claims['is_super_admin']: return {'message': 'Super Admin privilege required.'}, 412 data = _organization_parser.parse_args() try: organization_name = data["organization_name"] except Exception as e: return {'message': f"Organization Name missing. {repr(e)}"} if OrganizationModel.find_by_organization_name(organization_name): return { 'message': f"An Organization with name '{organization_name}' already exists." }, 400 organization = OrganizationModel(**data) try: organization.save_to_db() except Exception as e: return { "message": f"An error occurred inserting the organization. Error: {repr(e)}" }, 500 return organization.json(), 201
def find_by_any(cls, **kwargs): cols = [ 'id', 'email', 'status', 'first_name', 'last_name', 'gender', 'mobile', 'designation', 'type', 'teacher_code', 'bloodgroup', 'organization_id', 'user_role_id', 'organization_name', 'user_role_name' ] filter_str = 'cls.query' if 'id' in kwargs.keys(): filter_str = filter_str + '.filter_by(_id="' + str( kwargs['id']) + '")' if 'email' in kwargs.keys(): filter_str = filter_str + '.filter_by(email="' + str( kwargs['email']) + '")' if 'status' in kwargs.keys(): filter_str = filter_str + '.filter_by(status="' + str( kwargs['status']) + '")' if 'first_name' in kwargs.keys(): filter_str = filter_str + '.filter_by(first_name="' + str( kwargs['first_name']) + '")' if 'last_name' in kwargs.keys(): filter_str = filter_str + '.filter_by(last_name="' + str( kwargs['last_name']) + '")' if 'gender' in kwargs.keys(): filter_str = filter_str + '.filter_by(gender="' + str( kwargs['gender']) + '")' if 'mobile' in kwargs.keys(): filter_str = filter_str + '.filter_by(mobile="' + str( kwargs['mobile']) + '")' if 'designation' in kwargs.keys(): filter_str = filter_str + '.filter_by(designation="' + str( kwargs['designation']) + '")' if 'type' in kwargs.keys(): filter_str = filter_str + '.filter_by(type="' + str( kwargs['type']) + '")' if 'teacher_code' in kwargs.keys(): filter_str = filter_str + '.filter_by(teacher_code="' + str( kwargs['teacher_code']) + '")' if 'bloodgroup' in kwargs.keys(): filter_str = filter_str + '.filter_by(bloodgroup="' + str( kwargs['bloodgroup']) + '")' if 'organization_id' in kwargs.keys(): filter_str = filter_str + '.filter_by(organization_id="' + str( kwargs['organization_id']) + '")' if 'user_role_id' in kwargs.keys(): filter_str = filter_str + '.filter_by(user_role_id="' + str( kwargs['user_role_id']) + '")' if 'user_role_name' in kwargs.keys(): user_role = UserRoleModel.find_by_role_name( kwargs['user_role_name']) if user_role: user_role_id = user_role[0].id filter_str = filter_str + '.filter_by(user_role_id="' + str( user_role_id) + '")' if 'organization_name' in kwargs.keys(): organization = OrganizationModel.find_by_organization_name( kwargs['organization_name']) if organization: organization_id = organization[0].id filter_str = filter_str + '.filter_by(organization_id="'\ + str(organization_id) + '")' filter_str = filter_str + '.all()' return eval(filter_str)