Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 60 additions & 59 deletions backend/controller_task.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"""This module controls the task data between the sqlite database."""

from datetime import datetime
from typing import Any
from uuid import uuid4

from error import BackendError
Expand All @@ -18,104 +19,104 @@ def __init__(self) -> None:

def add_task_control(
self,
task_name: str,
task_description: str,
task_due: float,
task_est_day: int,
task_est_hour: int,
task_est_min: int,
assigner_id: str,
assign_id: str,
group_id: str,
recursive: int,
priority: int,
image_path: str,
password: str,
request_data: dict[str, Any],
) -> str:
"""This will add the task."""
if not Validator().check_user_exists(
user_id=assigner_id
) or not Validator().check_user_exists(user_id=assign_id):
user_id=request_data["assigner_id"]
) or not Validator().check_user_exists(user_id=request_data["assign_id"]):
raise BackendError("Backend Error: User does not exist", "304")
if group_id != "0" and not Validator().check_group_exists(group_id=group_id):
if request_data["group_id"] != "0" and not Validator().check_group_exists(
group_id=request_data["group_id"]
):
raise BackendError("Backend Error: Group does not exist", "306")
if not Validator().check_password(user_id=assigner_id, password=password):
if not Validator().check_password(
user_id=request_data["assigner_id"], password=request_data["password"]
):
raise BackendError("Backend Error: Password is incorrect", "305")
task_id: str = str(uuid4())
while Validator().check_duplicate_id(data_table="task", given_id=task_id):
task_id = str(uuid4())
image_path = "TODO CHANGE HERE"
task_due: float = datetime(
int(request_data.get("task_due_year", "2000")),
int(request_data.get("task_due_month", "1")),
int(request_data.get("task_due_date", "1")),
int(request_data.get("task_due_hour", "0")),
int(request_data.get("task_due_min", "0")),
0,
).timestamp()
with db_operation() as data_cursor:
data_cursor.execute(
"INSERT INTO task VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);",
(
task_id,
task_name,
task_description,
request_data["task_name"],
request_data.get("task_description", ""),
task_due,
task_est_day,
task_est_hour,
task_est_min,
assigner_id,
assign_id,
group_id,
int(request_data.get("task_est_day", "1")),
int(request_data.get("task_est_hour", "0")),
int(request_data.get("task_est_min", "0")),
request_data["assigner_id"],
request_data["assign_id"],
request_data["group_id"],
0, # completed = 0
priority,
recursive,
int(request_data.get("priority", "0")),
int(request_data.get("recursive", "0")),
image_path,
),
)
return task_id

def edit_task_control(
self,
task_id: str,
task_name: str,
task_description: str,
task_due: float,
task_est_day: int,
task_est_hour: int,
task_est_min: int,
assigner_id: str,
assign_id: str,
group_id: str,
recursive: int,
priority: int,
completed: int,
image_path: str,
password: str,
request_data: dict[str, Any],
) -> bool:
"""This will edit the task."""
if not Validator().check_task_exists(task_id=task_id):
if not Validator().check_task_exists(task_id=request_data["task_id"]):
raise BackendError("Backend Error: Task does not exist", "309")
if not Validator().check_user_exists(
user_id=assigner_id
) or not Validator().check_user_exists(user_id=assign_id):
user_id=request_data["assigner_id"]
) or not Validator().check_user_exists(user_id=request_data["assign_id"]):
raise BackendError("Backend Error: User does not exist", "304")
if group_id != "0" and not Validator().check_group_exists(group_id):
if request_data["group_id"] != "0" and not Validator().check_group_exists(
request_data["group_id"]
):
raise BackendError("Backend Error: Group does not exist", "306")
if Validator().check_password(user_id=assigner_id, password=password):
if Validator().check_password(
user_id=request_data["assigner_id"], password=request_data["password"]
):
raise BackendError("Backend Error: Password is incorrect", "305")
image_path = "TODO CHANGE HERE"
task_due: float = datetime(
int(request_data.get("task_due_year", "2000")),
int(request_data.get("task_due_month", "1")),
int(request_data.get("task_due_date", "1")),
int(request_data.get("task_due_hour", "0")),
int(request_data.get("task_due_min", "0")),
0,
).timestamp()
with db_operation() as data_cursor:
data_cursor.execute(
"UPDATE task SET name = ?, description = ?, due = ?, est_day = ?, "
"est_hour = ?, est_min = ?, assigner_uuid = ?, assign_uuid = ?, group_id = ? "
"recursive = ?, priority = ?, image_path = ? completed = ? "
"WHERE uuid = ?;",
(
task_name,
task_description,
request_data["task_name"],
request_data.get("task_description", ""),
task_due,
task_est_day,
task_est_hour,
task_est_min,
assigner_id,
assign_id,
group_id,
recursive,
priority,
int(request_data.get("task_est_day", "1")),
int(request_data.get("task_est_hour", "0")),
int(request_data.get("task_est_min", "0")),
request_data["assigner_id"],
request_data["assign_id"],
request_data["group_id"],
int(request_data.get("recursive", "0")),
int(request_data.get("priority", "0")),
image_path,
completed,
task_id,
int(request_data.get("completed", "0")),
request_data["task_id"],
),
)
return True
Expand Down
48 changes: 2 additions & 46 deletions backend/handler_task.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# coding: utf-8
"""This will hold the information with task handle."""

from datetime import datetime
from typing import Any

from flask import Request
Expand Down Expand Up @@ -36,34 +35,13 @@ def add_task_request(self) -> str:
"password",
],
)
task_due: float = datetime(
int(request_data.get("task_due_year", "2000")),
int(request_data.get("task_due_month", "1")),
int(request_data.get("task_due_date", "1")),
int(request_data.get("task_due_hour", "0")),
int(request_data.get("task_due_min", "0")),
0,
).timestamp()
return TaskController().add_task_control(
task_name=request_data["task_name"],
task_description=request_data.get("task_description", ""),
task_due=task_due,
task_est_day=int(request_data.get("task_est_day", "1")),
task_est_hour=int(request_data.get("task_est_hour", "0")),
task_est_min=int(request_data.get("task_est_min", "0")),
assigner_id=request_data["assigner_id"],
assign_id=request_data["assign_id"],
group_id=request_data["group_id"],
recursive=int(request_data.get("recursive", "0")),
priority=int(request_data.get("priority", "0")),
image_path="TODO CHANGE HERE",
password=request_data["password"],
request_data=request_data,
)

@handle_backend_exceptions
def edit_task_request(self) -> None:
"""Edits a task."""

request_data: dict[str, Any] = extract_request_data(
request=self.user_request,
required_fields=[
Expand All @@ -75,30 +53,8 @@ def edit_task_request(self) -> None:
"password",
],
)
task_due: float = datetime(
int(request_data.get("task_due_year", "2000")),
int(request_data.get("task_due_month", "1")),
int(request_data.get("task_due_date", "1")),
int(request_data.get("task_due_hour", "0")),
int(request_data.get("task_due_min", "0")),
0,
).timestamp()
TaskController().edit_task_control(
task_id=request_data["task_id"],
task_name=request_data["task_name"],
task_description=request_data.get("task_description", ""),
task_due=task_due,
task_est_day=int(request_data.get("task_est_day", "0")),
task_est_hour=int(request_data.get("task_est_hour", "0")),
task_est_min=int(request_data.get("task_est_min", "0")),
assigner_id=request_data["assigner_id"],
assign_id=request_data["assign_id"],
group_id=request_data["group_id"],
recursive=int(request_data.get("recursive", "0")),
priority=int(request_data.get("priority", "0")),
completed=int(request_data.get("completed", "0")),
image_path="TODO CHANGE HERE",
password=request_data["password"],
request_data=request_data,
)

@handle_backend_exceptions
Expand Down
Loading