def update_task_for_board(board_id, task_id, data): not_valid = validator.validate_update_task_for_board(data) if not_valid: return not_valid task_data = Task.query.filter_by(id=task_id, board_id=board_id, user_id=data["user_id"]).first() if task_data: if data.get("is_archived") is not None: task_data.is_archived = data.get("is_archived") if data.get("due_date"): task_data.due_date = datetime.datetime.strptime( data.get("due_date"), "%Y-%m-%d") if data.get("status"): task_data.status = data.get("status") if data.get("priority"): task_data.priority = data.get("priority") if data.get("title"): task_data.title = data['title'] if data.get("desc"): task_data.desc = data['desc'] if data.get("label"): labels = data.get("label") task_data.label_personal = "Personal" if "Personal" in labels else None task_data.label_work = "Work" if "Work" in labels else None task_data.label_shopping = "Shopping" if "Shopping" in labels else None task_data.label_others = "Others" if "Others" in labels else None task_data.update_date = datetime.datetime.utcnow() db.session.commit() return get_response(200, "{} task updated.".format(task_data.title), []), 200 else: return get_response(404, "{} task didn't found.".format(task_id), []), 404
def archive_task_for_board(board_id, task_id, data): task_data = Task.query.filter_by(id=task_id, board_id=board_id, user_id=data["user_id"]).first() if task_data: task_data.is_archived = True db.session.commit() return get_response(200, "{} task archived.".format(task_data.title), []), 200 else: return get_response(404, "{} task didn't found.".format(task_id), []), 404
def get_filtered_task(board_id, data): query = Task.query.filter_by(board_id=board_id, user_id=data["user_id"], is_archived=False) if data.get("status"): query = query.filter_by(status=data["status"]) if data.get("priority"): query = query.filter_by(priority=data["priority"]) if data.get("query"): query = query.filter((Task.title.like("%{}%".format(data["query"]))) | (Task.desc.like("%{}%".format(data["query"])))) if data.get("to") and data.get("from"): to_date = datetime.datetime.strptime(data.get("to"), "%Y-%m-%d") from_date = datetime.datetime.strptime(data.get("from"), "%Y-%m-%d") query = query.filter(Task.due_date.between(from_date, to_date)) if data.get("label"): label = data["label"] if label == "Personal": query = query.filter_by(label_personal=label) if label == "Work": query = query.filter_by(label_work=label) if label == "Shopping": query = query.filter_by(label_shopping=label) if label == "Others": query = query.filter_by(label_others=label) print(query) task_data = query.all() task_details_list = map_task_data(task_data) return get_response(200, "", task_details_list), 200
def get_all_boards(data): not_valid = validator.validate_get_all_boards(data) if not_valid: return not_valid board_data = Board.query.filter_by(user_id=data['user_id']).all() board_details_list = map_board_data(board_data) return get_response(200, "", board_details_list), 200
def add_board(data): not_valid = validator.validate_add_board(data) if not_valid: return not_valid new_board = Board(name=data['name'], user_id=data['user_id']) save_changes(new_board) return get_response(200, "{} board created".format(data['name']), []), 200
def delete_board(board_id, data): not_valid = validator.validate_delete_board(data) if not_valid: return not_valid Task.query.filter_by(user_id=data['user_id'], board_id=board_id).delete() Board.query.filter_by(user_id=data['user_id'], id=board_id).delete() db.session.commit() return get_response(200, "Deleted Board", []), 200
def get_task(board_id, task_id, data): task_data = Task.query.filter_by(id=task_id, board_id=board_id, user_id=data["user_id"]).all() task_details_list = map_task_data(task_data) data = [] if task_details_list: data = task_details_list[0] return get_response(200, "", data), 200
def add_task_for_board(board_id, data): new_task = Task(title=data['title'], board_id=board_id, user_id=data['user_id'], status=data['status'], desc=data.get('desc'), priority=data.get('priority'), creation_date=datetime.datetime.utcnow(), update_date=datetime.datetime.utcnow()) save_changes(new_task) return get_response(200, "{} task created".format(data['title']), []), 200
def get_board(board_id, data): not_valid = validator.validate_get_board(data) if not_valid: return not_valid task_data = Task.query.filter_by(user_id=data['user_id'], board_id=board_id, is_archived=False).all() task_details_list = map_task_data(task_data) data = { "tasks": task_details_list, "label": get_label(), "priority": get_priority(), "task_status": get_status() } return get_response(200, "", data), 200
def add_task_for_board(board_id, data): not_valid = validator.validate_add_task(data) if not_valid: return not_valid labels = data.get("label") if data.get("label") else [] new_task = Task( title=data['title'], board_id=board_id, user_id=data['user_id'], status=data['status'], desc=data.get('desc'), label_personal="Personal" if "Personal" in labels else None, label_work="Work" if "Work" in labels else None, label_shopping="Shopping" if "Shopping" in labels else None, label_others="Others" if "Others" in labels else None, priority=data.get('priority'), creation_date=datetime.datetime.utcnow(), update_date=datetime.datetime.utcnow(), due_date=datetime.datetime.strptime(data.get("due_date"), "%Y-%m-%d") if data.get('due_date') else None) save_changes(new_task) return get_response(200, "{} task created".format(data['title']), []), 200
def get_all_priority(): priority = get_priority() return get_response(200, "", priority)
def get_all_status(): status = get_status() return get_response(200, "", status)
def get_all_label(): labels = get_label() return get_response(200, "", labels)