class LoginAPI(Resource): def __init__(self): super(LoginAPI, self).__init__() user_args = { "email": fields.Str(required=True), "password": fields.Str(required=True) } @use_args(user_args, location="json") def post(self, args): email = args['email'] password = args['password'] rst, user = search_user(email) if not rst: raise UnauthorizedError if not check_password_hash(user[0][1], password): raise UnauthorizedError expires = datetime.timedelta(minutes=60) token = {'AccessToken': create_access_token(identity=email, expires_delta=expires, fresh=True), 'RefreshToken': create_refresh_token(identity=email)} return jsonify(token)
class ProjectListAPI(Resource): def __init__(self): super(ProjectListAPI, self).__init__() # Return project list @jwt_required @use_args({"type": fields.Str(required=True)}, location="query") # authorized or owner def get(self, args): email = get_jwt_identity() typeList = args['type'] if (typeList != AUTHORIZED and typeList != OWNER): raise InvalidTypeListError if typeList == AUTHORIZED: project_list = all_project_list(email) else: project_list = own_project_list(email) if project_list == []: return {"Error": "There are no projects"} project_list = json.dumps([{"projectId": project[0], "projectName": project[1], "projectOwner": project[2], "phenomenon": project[3], "tuplesize": project[4], "replicate": project[5], "Location": url_for('project', id=project[0], _external=True)} for project in project_list]) project_list_json = json.loads(project_list) return project_list_json
class NinjsSchema(Schema): id = fields.Str() uri = fields.Str() type = fields.Str() versioncreated = fields.Str() byline = fields.Str() headline = fields.Str() body_text = fields.Str() body_xhtml = fields.Str()
class DisableResponseSchema(Schema): id = fields.Str(default='Success') name = fields.Str(default='Success') email = fields.Str(default='Success') mobile = fields.Str(default='Success') exams = fields.Str(default='Success') ratings = fields.Str(default='Success')
class CreateTaskAPI(MethodResource, Resource): args = { 'content': fields.Str( required=True, ), } @doc(description='Create Task with content', tags=['Task']) @marshal_with(TasksResponseSchema) @use_kwargs(args) def post(self,content): NewTask = TaskContainer(content=content, table_name="TODO") try: db.session.add(NewTask) db.session.commit() return jsonify(result="SUCCESS") except: return jsonify(result="ERROR - create new task error")
return jsonify({"companies": [i.as_dict() for i in companies()]}) @app.route("/companies/<int:company_id>", methods=["GET"]) def route_company_get_by_id(company_id): company = Company.query.filter(Company.id == company_id).first() if not company: return abort( 400, "The company with id: {0} does not exists".format(company_id)) return jsonify(company.as_dict()) @app.route("/companies", methods=["POST"]) @marshal_with(CompanySchema()) @use_kwargs({ "name": fields.Str(), "description": fields.Str(), "company_type": fields.Str(), }) def route_company_create(name, description, company_type): if company_type.lower() not in ["buyer", "seller"]: return abort( 400, "{0} is not a valid company type. Please choose buyer or seller.". format(company_type)) company = Company( name=name, description=description, company_type=company_type, ) db.session.add(company)
class UsersAPI(Resource): def __init__(self): super(UsersAPI, self).__init__() user_args = { "email": fields.Str(required=True), "password": fields.Str(required=True) } # Insert a new user @use_args(user_args, location="json") def post(self, args): email = args['email'] password = args['password'] regex = "^.+@(\[?)[a-zA-Z0-9-.]+.([a-zA-Z]{2,3}|[0-9]{1,3})(]?)$" pat = re.compile(regex) if not re.search(pat,email): raise InvalidEmailError regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d@$!#%*?&]{6,20}$" pat = re.compile(regex) if not re.search(pat,password): raise InvalidPasswordError password = generate_password_hash(password) result, msg = insert_user(email, password) if not result: raise EmailAlreadyExistsError with open('templates/welcome.html', 'r') as f: body = f.read() body = Template(body).safe_substitute(user=email) mail = { 'from' : '*****@*****.**', 'object' : 'LITESCALE - CONFIRM REGISTRATION', 'message' : body } # Connect to server server = smtplib.SMTP_SSL('out.virgilio.it', 465) # Login server.login(mail['from'], "6$ki7M!n8y3a2zc") # Send mail msg = MIMEText(mail['message'], 'html', 'utf-8') msg['Subject'] = mail['object'] msg['From'] = mail['from'] msg['To'] = email server.sendmail(mail['from'], email, msg.as_string()) return {"result" : "True"} # Delete user @fresh_jwt_required def delete(self): email = get_jwt_identity() rst, msg = delete_user(email) if not rst: raise ResourceNotFoundError return {"result": "True"}
class NexusSchema(Schema): id = fields.Str() self = fields.Str() query = fields.Str() policy = fields.Str()
orders = Order.query.all return jsonify({"orders":[i.as_dict() for i in orders()]}) @app.route("/orders/<int:order_id>", methods=["GET"]) def route_order_get_by_id(order_id): order = Order.query.filter(Order.id == order_id).first() if not order: return abort(400, "The order with id: {0} does not exists".format(order_id)) return jsonify(order.as_dict()) @app.route("/orders", methods=["POST"]) @marshal_with(OrderSchema()) @use_kwargs( { "name": fields.Str(), "description": fields.Str(), "buyer_id": fields.Int(), "seller_id": fields.Int(), "lineitems": fields.List(fields.Dict(), required=True), } ) def route_order_create(name, description, buyer_id, seller_id, lineitems): buyer = Company.query.filter(Company.id == buyer_id).first() seller = Company.query.filter(Company.id == seller_id).first() order_items = [] order = Order( name=name, description=description, buyer=buyer, seller=seller,
class TicketsSchema(Schema): id = fields.Str() self = fields.Str() use = fields.Str() asset = fields.Str()
class ExamResponseSchema(Schema): exam_name = fields.Str(default='Success') exam_date = fields.Str(default='Success') exam_start_time = fields.Str(default='Success') exam_end_time = fields.Str(default='Success') exam_centre_addr = fields.Str(default='Success') exam_city = fields.Str(default='Success') exam_area_pincode = fields.Str(default='Success') skills_preference = fields.Str(default='Success') gender_preference = fields.Str(default='Success') language_preference = fields.Str(default='Success') disabled_id = fields.Str(default='Success') volunteer_id = fields.Str(default='Success')
class VolunteerResponseSchema(Schema): password = fields.Str(default='Success') name = fields.Str(default='Success') email = fields.Str(default='Success') mobile = fields.Str(default='Success') gender = fields.Str(default='Success') city_town_village = fields.Str(default='Success') state = fields.Str(default='Success') pincode = fields.Str(default='Success') language_1 = fields.Str(default='Success') language_2 = fields.Str(default='Success') language_3 = fields.Str(default='Success') highest_degree = fields.Str(default='Success')
class TasksResponseSchema(Schema): message = fields.Str(default='Success')