adding endpoints

This commit is contained in:
2026-09-18 12:26:25 -04:00
parent d5c341d1fc
commit f38a178fcd
44 changed files with 1302 additions and 4 deletions
+93
View File
@@ -0,0 +1,93 @@
from scheduler.database.company_repository import CompanyRepository
from scheduler.database.database import Database
from scheduler.database.employee_repository import EmployeeRepository
from scheduler.database.schedule_repository import ScheduleRepository
def get_connection():
return Database().get_connection()
def initialize_schema(connection=None):
Database().initialize_schema()
def add_company(connection, name):
return CompanyRepository(connection).create(name)
def get_company_by_name(connection, name):
return CompanyRepository(connection).get_by_name(name)
def remove_company(connection, company_id):
return CompanyRepository(connection).delete(company_id)
def get_employee_names_by_company(connection, company_id):
return EmployeeRepository(connection).get_names_by_company(company_id)
def add_user(connection, name, last_name, preference):
with connection.cursor() as cursor:
cursor.execute(
"""
INSERT INTO users (name, last_name, preference)
VALUES (%s, %s, %s)
RETURNING id, name, last_name, preference, date_created, date_updated
""",
(name, last_name, preference),
)
user = cursor.fetchone()
connection.commit()
return user
def update_user_preference(connection, user_id, preference):
return EmployeeRepository(connection).update_preference(user_id, preference)
def add_company_user(connection, company_id, user_id):
return EmployeeRepository(connection).assign_to_company(company_id, user_id)
def remove_user(connection, user_id):
return EmployeeRepository(connection).delete(user_id)
def add_schedule(connection, user_id, enter_time, day_of_week, out_time):
return ScheduleRepository(connection).create(user_id, enter_time, day_of_week, out_time)
def get_days_worked_by_user(connection, user_id):
with connection.cursor() as cursor:
cursor.execute(
"""
SELECT DISTINCT day_of_week
FROM schedules
WHERE user_id = %s
ORDER BY day_of_week
""",
(user_id,),
)
return [row["day_of_week"] for row in cursor.fetchall()]
def get_user_enter_time_by_day(connection, user_id, day_of_week):
with connection.cursor() as cursor:
cursor.execute(
"""
SELECT enter_time
FROM schedules
WHERE user_id = %s AND day_of_week = %s
ORDER BY date_created DESC
LIMIT 1
""",
(user_id, day_of_week),
)
row = cursor.fetchone()
return None if row is None else row["enter_time"]
def update_day_end_by_user_and_day(connection, user_id, day_of_week, out_time):
return ScheduleRepository(connection).update_clock_out(user_id, day_of_week, out_time)