Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    def get(self, name):

        workspace = Workspace.get_by_name(name=name)

        data = {'name': workspace.name, 'size': workspace.size}

        return data, HTTPStatus.OK
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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
Ejemplo n.º 8
0
 def get_workspace(self, value):
     return Workspace.get_by_name(value).id