def post(self, name): project_parse = reqparse.RequestParser() project_parse.add_argument('name', type=non_empty_string, required=True, help='Name is required') project_parse.add_argument('description', type=non_empty_string, required=True, help="description is required") project_parse.add_argument('project_color_identity', type=non_empty_string, required=True, help="project_color_identity is required") project = ProjectModel.find_by_name(name) if project: return { "ProjectAlreadyExistsError": { "message": "Project with given name already exists", "status": 400 } } data = project_parse.parse_args() project = ProjectModel(data['name'], data['description'], get_jwt_identity(), data['project_color_identity']) project.save_to_db() return {"message": "Project Created", "status": 200}
def get(self, pname): project = ProjectModel.find_by_name(pname) if project: return project.json(), 200 return { 'message': "Project named '{}' is not found".format(pname) }, 404
def post(cls, project: str, title: str): project = ProjectModel.find_by_name(project) if not project: return {'message': gettext("project_not_found").format(project)}, 400 current_user = get_jwt_identity() user = UserModel.find_by_username(current_user) if user not in project.authorized: return {'message': gettext("project_not_authorized")}, 401 for taskItem in project.task: if taskItem.title == title: return {'message': gettext("task_name_exists").format(title)}, 400 task_json = request.get_json() task_json['title'] = title if "assigned" in task_json: user_assg = UserModel.find_by_username(task_json['assigned']) task_json.pop("assigned") else: user_assg = None task = task_schema.load(task_json) task['createdate'] = datetime.now() task['owner'] = user task['status'] = "Boşta" if user_assg: task['assigned'] = user_assg print(task.to_json()) try: project.task.append(task) project.save() except: return {"message": gettext("task_error_creating")}, 500 return task_schema.dump(task), 201
def get(cls, name: str): project = ProjectModel.find_by_name(name) if not project: return {'message': gettext("project_not_found")}, 404 current_user = get_jwt_identity() user = UserModel.find_by_username(current_user) if user not in project.authorized: return {'message': gettext("project_not_authorized")}, 401 return project_schema.dump(project), 200
def get(cls, project: str): project = ProjectModel.find_by_name(project) if not project: return {'message': gettext("project_not_found").format(project)}, 400 current_user = get_jwt_identity() user = UserModel.find_by_username(current_user) if user not in project.authorized: return {'message': gettext("project_not_authorized")}, 401 return {'task': task_list_schema.dump(project.task)}, 200
def put(self, pname): data = Project.parser.parse_args() project = ProjectModel.find_by_name(pname, int(current_identity)) if project: project.description = data['description'] else: project = ProjectModel(pname, **data) project.save_to_db() return project.json()
def get(self, name): project = ProjectModel.find_by_name(name) if project: return {"project": project.json(), "status": 200} return { "ProjectNotExistsError": { "message": "Project with given name doesn't exists", "status": 400, } }
def get(cls, project: str, title: str): project = ProjectModel.find_by_name(project) if not project: return {'message': gettext("project_not_found").format(project)}, 400 current_user = get_jwt_identity() user = UserModel.find_by_username(current_user) if user not in project.authorized: return {'message': gettext("project_not_authorized")}, 401 for taskItem in project.task: if taskItem.title == title: return task_schema.dump(taskItem), 200 return {'message': gettext("task_not_found")}, 404
def delete(cls, project: str, title: str): project = ProjectModel.find_by_name(project) if not project: return {'message': gettext("project_not_found").format(project)}, 400 current_user = get_jwt_identity() user = UserModel.find_by_username(current_user) if user not in project.authorized: return {'message': gettext("project_not_authorized")}, 401 for taskItem in project.task: if taskItem.title == title: project.update(pull__task__title=title) return {'message': gettext("task_deleted")}, 200 return {'message': gettext("task_not_found")}, 404
def delete(self, pname): # data = Project.parser.parse_args() project = ProjectModel.find_by_name(pname, int(current_identity)) if project: project.delete_from_db() return { 'message': "Project named '{}' is deleted".format(pname) }, 200 return { 'message': "Some error occurred when deleting project named '{}'".format( pname) }, 404
def put(cls, name: str): project_json = request.get_json() project = ProjectModel.find_by_name(name) current_user = get_jwt_identity() user = UserModel.find_by_username(current_user) if user not in project.authorized: return {'message': gettext("project_not_authorized")}, 401 if project: project.status = project_json['status'] else: project_json['name'] = name project = project_schema.load(project_json) try: project.save() except: return {"message": gettext("project_error_creating")}, 500 return project_schema.dump(project), 200
def put(cls, project: str, title: str): project = ProjectModel.find_by_name(project) if not project: return {'message': gettext("project_not_found").format(project)}, 400 current_user = get_jwt_identity() user = UserModel.find_by_username(current_user) if user not in project.authorized: return {'message': gettext("project_not_authorized")}, 401 for taskItem in project.task: if taskItem.title == title: taskDict = task_schema.dump(taskItem) taskDict.pop("owner", None) taskDict.pop("assigned", None) task_json = request.get_json() print(task_json) task_json["title"] = title if "assigned" in task_json: user_assg = UserModel.find_by_username(task_json['assigned']) task_json.pop("assigned", None) else: user_assg = None taskDict.update(task_json) print(taskDict) task = task_schema.load(taskDict) task['owner'] = user if user_assg: task['assigned'] = user_assg print(task.to_json()) project.update(pull__task__title=title) project.reload() # ProjectModel.objects.filter(task__title=task).update(push__task=task) project.task.append(task) project.save() return {"message": "success"}, 500 # try: # project.task.append(task) # project.save() # except: # return {"message": gettext("task_error_creating")}, 500 # return task_schema.dump(task), 201 return {'message': gettext("task_not_found")}, 400
def post(cls, name: str): if ProjectModel.find_by_name(name): return { 'message': gettext("project_name_exists").format(name) }, 400 current_user = get_jwt_identity() user = UserModel.find_by_username(current_user) print(user.to_json()) project_json = {} project_json['name'] = name project = project_schema.load(project_json) project['createdate'] = datetime.now() project['owner'] = user project['authorized'] = [user] print(project.to_json()) try: project.save() except: return {"message": gettext("project_error_creating")}, 500 return project_schema.dump(project), 201
def delete(self, name): project = ProjectModel.find_by_name(name) project_parse = reqparse.RequestParser() data = project_parse.parse_args() if project: if project.created_by_id == get_jwt_identity(): # owner can do anything project.delete_from_db() return {"message": "Project Deleted..", "status": 200} else: # not owner but have a permission to delete collaborator = ShareProjectModel.query.filter( and_(ShareProjectModel.share_with_id == get_jwt_identity(), ShareProjectModel.uuid == project.uuid)).first() if collaborator: if collaborator.permission == "Delete": project.delete_from_db() return {"message": "Project Deleted.", "status": 200} # no permission to update return { "DeletingProjectError": { "message": "You don't have Delete permission", "status": 401 } } return { "CollaboratorNotExistsError": { "message": "Collaborator with given id doesn't exists", "status": 400 } } return { "ProjectNotExistsError": { "message": "Project with given name doesn't exists", "status": 400 } }
def post(cls, project: str, task: str): project = ProjectModel.find_by_name(project) if not project: return { 'message': gettext("project_not_found").format(project) }, 400 current_user = get_jwt_identity() user = UserModel.find_by_username(current_user) if user not in project.authorized: return {'message': gettext("project_not_authorized")}, 401 for taskItem in project.task: if taskItem.title == task: comment_json = request.get_json() comment = comment_schema.load(comment_json) comment['user'] = user comment['id'] = uuid4().hex comment['date'] = datetime.now() print(comment.to_json()) # taskItem.comment.append(comment) ProjectModel.objects.filter(task__title=task).update( push__task__S__comment=comment) # project.save() return comment_schema.dump(comment), 201
def put(self, name): project_parse = reqparse.RequestParser() project_parse.add_argument('description', type=non_empty_string, required=True, help="description is required") project_parse.add_argument('permission', type=non_empty_string, required=False) project_parse.add_argument('name', type=non_empty_string, required=False) data = project_parse.parse_args() project = ProjectModel.find_by_name(name) if project: if project.created_by_id == get_jwt_identity(): # owner can do anything project.description = data['description'] if data['permission'] != None: project.permissions = data['permission'] if data['name'] != None: project.name = data['name'] project.save_to_db() return {"Message": "Project Updated..", "status": 200} else: # not owner but have permission to edit collaborator = ShareProjectModel.query.filter( and_(ShareProjectModel.share_with_id == get_jwt_identity(), ShareProjectModel.uuid == project.uuid)).first() if collaborator: if collaborator.permission == "Edit" or collaborator.permission == "Delete": project.description = data['description'] project.save_to_db() return { "message": "Project Details Updated..", "Note": "You are part of this project not Owner.", "status": 200 } # no permission to update return { "UpdatingProjectError": { "message": "You don't have Edit permission", "status": 401 } } return { "CollaboratorNotExistsError": { "message": "Collaborator with given id doesn't exists", "status": 400 } } return { "ProjectNotExistsError": { "message": "Project with given name doesn't exists", "status": 400 } }