def patch(self, name): """Modifies a workspace""" """PATCH -> /workspaces/<string:name>""" json_data = request.get_json() data, errors = workspace_schema.load(data=json_data, partial=('name', )) current_user = get_jwt_identity() if current_user == "admin": if errors: return { 'message': 'Validation errors', 'errors': errors }, HTTPStatus.BAD_REQUEST workspace = Workspace.get_by_name(name=name) if workspace is None: return {'message': 'Workspace not found'}, HTTPStatus.NOT_FOUND else: workspace.name = data.get('name') or workspace.name workspace.user_limit = data.get( 'user_limit') or workspace.user_limit workspace.available_from = data.get( 'available_from') or workspace.available_from workspace.available_till = data.get( 'available_till') or workspace.available_till workspace.save() return workspace_schema.dump(workspace).data, HTTPStatus.OK else: return {"message": "no admin authorization"}, HTTPStatus.FORBIDDEN
def get(self, name): """Get specific workspace""" """GET -> /workspaces/<string:name>""" workspace = Workspace.get_by_name(name=name) if workspace is None: return {'message': 'Workspace not found'}, HTTPStatus.NOT_FOUND return workspace_schema.dump(workspace).data, HTTPStatus.OK
def post(self): """Create new workspace""" """POST -> /workspaces""" json_data = request.get_json() data, errors = workspace_schema.load(data=json_data) current_user = get_jwt_identity() if current_user == "admin": if errors: return { 'message': 'Validation errors', 'errors': errors }, HTTPStatus.BAD_REQUEST if Workspace.get_by_name(data.get('name')): return { 'message': 'Workspace name already used' }, HTTPStatus.BAD_REQUEST else: workspace = Workspace(**data) workspace.save() return workspace_schema.dump( workspace).data, HTTPStatus.CREATED else: return {"message": "no admin authorization"}, HTTPStatus.FORBIDDEN
def get(self, name): workspace = Workspace.get_by_name(name=name) data = {'name': workspace.name, 'size': workspace.size} return data, HTTPStatus.OK
def delete(self, name): """Deletes a workspace""" """DELETE /workspaces/<string:name>""" workspace = Workspace.get_by_name(name=name) current_user = get_jwt_identity() if current_user == "admin": if workspace is None: return {'message': 'Workspace not found'}, HTTPStatus.NOT_FOUND else: workspace.delete() return {}, HTTPStatus.NO_CONTENT else: return {"message": "no admin authorization"}, HTTPStatus.FORBIDDEN
def check(): data = request.args.get('jsdata') space = request.args.get('space') space = space.split(" ") check_list = [] reservations = Reservation.query.all() spaceid = Workspace.get_by_name(space[0]).id print(spaceid) for reservation in reservations: if spaceid == reservation.workspace: newdate = str(reservation.datetime).split(" ")[0] if newdate == data: d = str(reservation.datetime) d2 = str(reservation.datetimeend) date3 = d + " - " + d2 check_list.append(date3) if not reservations: check_list.append("No reservations") return render_template('reservationscheck.html', checklist=check_list)
def put(self): data = request.form data2 = json.dumps(data) data3 = json.loads(data2) date = data3["datetime"] workspace = data3["workspace"] timeend = data3["timeend"] timestart = data3["timestart"] id = data3['id'] reservation = Reservation.get_by_id2(id) reservation.reservor = data3["name"] or reservation.reservor reservation.workspace = Workspace.get_by_name(workspace).id or reservation.workspace reservation.datetime = str(date) + "T" + timestart or reservation.datetime reservation.datetimeend = str(date) + "T" + timeend or reservation.datetimeend reservation.save() resp = make_response(redirect(url_for('hello'))) return resp
def get_workspace(self, value): return Workspace.get_by_name(value).id