コード例 #1
0
ファイル: controllers.py プロジェクト: Daniel-Tilley/College
def GetUser(current_user, user_type, username):
    if not username:
        return ResponseHelper.ReturnBadRequestResponse()

    user_dao = UserDao()

    if username == current_user:
        user = user_dao.GetUserById(current_user)

        if user:
            return ResponseHelper.ReturnOkDataResponse("User Found", {
                "User":
                DAOHelper.RemoveValueFromObject(UsersTable.PASSWORD, user)
            })

        else:
            return ResponseHelper.ReturnNotFoundResponse("User Not Found!")

    else:
        user = user_dao.GetUserById(username)

        if user:
            return ResponseHelper.ReturnOkDataResponse("Request OK", {
                "User":
                DAOHelper.RemoveValueFromObject(UsersTable.PASSWORD, user)
            })

        else:
            return ResponseHelper.ReturnNotFoundResponse("User Not Found!")
コード例 #2
0
def Login():
    auth = request.authorization

    if not auth or not auth.username or not auth.password:
        return ResponseHelper.ReturnBadRequestResponse()

    user_dao = UserDao()
    user = user_dao.GetUserById(auth.username)

    if not user:
        return ResponseHelper.ReturnUnauthorizedResponse(
            "User Does Not Exist!")

    if CheckPassword(auth.username, auth.password):
        try:
            return ResponseHelper.ReturnOkDataResponse(
                "User Authenticated", {
                    "Token":
                    TokenHelper.CreateToken(user[UsersTable.ID],
                                            user[UsersTable.TYPE])
                })
        except:
            return ResponseHelper.ReturnErrorResponse()

    else:
        return ResponseHelper.ReturnUnauthorizedResponse("Incorrect Password!")
コード例 #3
0
def GetAttendingEvents(current_user, user_type):

    event_dao = EventDao()
    events = event_dao.GetParticipatingEvents(current_user)

    if events:
        return ResponseHelper.ReturnOkDataResponse("Request OK",
                                                   {"Events": events})

    else:
        return ResponseHelper.ReturnNotFoundResponse("No Events Found!")
コード例 #4
0
ファイル: controllers.py プロジェクト: Daniel-Tilley/College
def GetUsers(current_user, user_type, search_type, search_value):
    if not search_type and search_value:
        return ResponseHelper.ReturnBadRequestResponse()

    user_dao = UserDao()
    users = user_dao.GetUsers(search_type, search_value)

    if users:
        return ResponseHelper.ReturnOkDataResponse("Request OK",
                                                   {"Users": users})

    else:
        return ResponseHelper.ReturnNotFoundResponse("Users Not Found!")
コード例 #5
0
ファイル: controllers.py プロジェクト: Daniel-Tilley/College
def GetAthletes(current_user, user_type):

    if user_type != RequestConstants.USER_TYPE_COA:
        return ResponseHelper.ReturnBadRequestResponse()

    user_dao = UserDao()
    users = user_dao.GetCoachAthletes(current_user)

    if users:
        return ResponseHelper.ReturnOkDataResponse("Request OK",
                                                   {"Users": users})

    else:
        return ResponseHelper.ReturnNotFoundResponse("Users Not Found!")
コード例 #6
0
def CanAccess(current_user, user_type, event_id):

    if not event_id:
        return ResponseHelper.ReturnBadRequestResponse()

    event_dao = EventDao()
    can_access = event_dao.CanAccess(event_id, current_user)

    if can_access:
        return ResponseHelper.ReturnOkDataResponse("Ok", can_access)

    else:
        return ResponseHelper.ReturnUnauthorizedResponse(
            "Needs to request access!")
コード例 #7
0
def GetEvent(current_user, user_type, event_id):

    if not event_id:
        return ResponseHelper.ReturnBadRequestResponse()

    event_dao = EventDao()
    event = event_dao.GetEvent(event_id)

    if event:
        return ResponseHelper.ReturnOkDataResponse("Request OK",
                                                   {"Event": event})

    else:
        return ResponseHelper.ReturnNotFoundResponse("No Event Found!")
コード例 #8
0
def GetCoachAccess(current_user, user_type, athlete_id):

    if not athlete_id:
        return ResponseHelper.ReturnBadRequestResponse()

    if user_type != RequestConstants.USER_TYPE_COA:
        return ResponseHelper.ReturnBadRequestResponse()

    access_dao = AccessDao()
    access = access_dao.CheckAccess(current_user, athlete_id)
    if access:
        return ResponseHelper.ReturnOkDataResponse("Ok", {"Access": access})

    else:
        return ResponseHelper.ReturnUnauthorizedResponse(
            "Needs to request access!")
コード例 #9
0
ファイル: controllers.py プロジェクト: Daniel-Tilley/College
def GetTemplates(current_user, user_type, user_id):

    if current_user != user_id:
        return ResponseHelper.ReturnBadRequestResponse()

    if user_type != RequestConstants.USER_TYPE_COA:
        return ResponseHelper.ReturnBadRequestResponse()

    training_log_template_dao = TrainingLogTemplateDao()
    templates = training_log_template_dao.GetTemplates(user_id)

    if templates:
        return ResponseHelper.ReturnOkDataResponse("Request OK",
                                                   {"Templates": templates})

    else:
        return ResponseHelper.ReturnNotFoundResponse("No Templates Found!")
コード例 #10
0
def GetTargets(current_user, user_type, user_id, week_num, year_num):

    if current_user != user_id:

        access_dao = AccessDao()

        if not access_dao.CheckCoachTargetsAccess(current_user, user_id):
            return ResponseHelper.ReturnBadRequestResponse()

    if not week_num:
        return ResponseHelper.ReturnBadRequestResponse()

    target_dao = TargetDao()
    targets = target_dao.GetTargetsByWeek(user_id, week_num, year_num)

    if targets:
        return ResponseHelper.ReturnOkDataResponse("Request OK",
                                                   {"Targets": targets})

    else:
        return ResponseHelper.ReturnNotFoundResponse("No Targets Found!")
コード例 #11
0
def CreateEvent(current_user, user_type):

    if not request.data:
        return ResponseHelper.ReturnBadRequestResponse()

    event_data = json.loads(request.data)

    event = Event(None, event_data[str(EventsTable.TYPE)],
                  event_data[str(EventsTable.NAME)],
                  event_data[str(EventsTable.HOST_USERNAME)],
                  event_data[str(EventsTable.CREATED_DATE)],
                  event_data[str(EventsTable.EVENT_DATE)], None)

    event_dao = EventDao()
    event_id = event_dao.CreateEvent(event)

    if event_id:
        return ResponseHelper.ReturnOkDataResponse("Event Created!", event_id)

    else:
        return ResponseHelper.ReturnConflictResponse("Unable to Create Event!")
コード例 #12
0
ファイル: controllers.py プロジェクト: Daniel-Tilley/College
def GetWorkoutById(current_user, user_type, user_id, training_log_id):

    if current_user != user_id:

        access_dao = AccessDao()

        if not access_dao.CheckCoachTrainingLogAccess(current_user, user_id):
            return ResponseHelper.ReturnBadRequestResponse()

    if not training_log_id:
        return ResponseHelper.ReturnBadRequestResponse()

    training_log_dao = TrainingLogDao()
    training_log = training_log_dao.GetWorkoutById(training_log_id, user_id)

    if training_log:
        return ResponseHelper.ReturnOkDataResponse(
            "Request OK",
            {"TrainingLog": training_log}
        )

    else:
        return ResponseHelper.ReturnNotFoundResponse("Training Log Not Found!")
コード例 #13
0
ファイル: controllers.py プロジェクト: Daniel-Tilley/College
def GetInvites(current_user, user_type, invite_status_type):

    invite_type = request.args.get('type')

    invite_types = ["one-one", "vid-con", "coa-dat", "ath-dat"]

    if not invite_status_type:
        return ResponseHelper.ReturnBadRequestResponse()

    if not invite_type or invite_type not in invite_types:

        if invite_status_type == "sent" or invite_status_type == "received":

            invite_dao = InviteDao()
            invites = invite_dao.GetInvites(current_user, invite_status_type)

            if invites:
                return ResponseHelper.ReturnOkDataResponse(
                    "Request OK", {"Invites": invites})

            else:
                return ResponseHelper.ReturnNotFoundResponse(
                    "No Invites Found!")

        elif invite_status_type == "new":

            invite_dao = InviteDao()
            count = invite_dao.GetNewInvitesCount(current_user)

            if count:
                return ResponseHelper.ReturnOkDataResponse("Request OK", count)

            else:
                return ResponseHelper.ReturnOkDataResponse("Request OK", 0)

        else:
            return ResponseHelper.ReturnBadRequestResponse()

    else:

        if invite_status_type == "sent" or invite_status_type == "received":

            if invite_type == "ath-dat" and user_type != RequestConstants.USER_TYPE_ATH:
                return ResponseHelper.ReturnBadRequestResponse()

            if invite_type == "coa-dat" and user_type != RequestConstants.USER_TYPE_COA:
                return ResponseHelper.ReturnBadRequestResponse()

            invite_dao = InviteDao()
            invites = invite_dao.GetInvites(
                current_user, invite_status_type,
                (invite_types.index(invite_type) + 1))

            if invites:
                return ResponseHelper.ReturnOkDataResponse(
                    "Request OK", {"Invites": invites})

            else:
                return ResponseHelper.ReturnNotFoundResponse(
                    "No Invites Found!")

        else:

            return ResponseHelper.ReturnBadRequestResponse()
コード例 #14
0
ファイル: controllers.py プロジェクト: Daniel-Tilley/College
def GetWorkouts(current_user, user_type, user_id):

    if current_user != user_id:

        access_dao = AccessDao()

        if not access_dao.CheckCoachTrainingLogAccess(current_user, user_id):
            return ResponseHelper.ReturnBadRequestResponse()

    day = request.args.get('day')
    week = request.args.get('week')
    month = request.args.get('month')
    year = request.args.get('year')
    log_type = request.args.get('type')

    if not day and not week and not month and not year:
        return ResponseHelper.ReturnBadRequestResponse()

    else:
        # Workouts by day
        if day and month and year:

            training_log_dao = TrainingLogDao()
            training_logs = training_log_dao.GetWorkoutsByDay(day, month, year, user_id)

            if training_logs:
                return ResponseHelper.ReturnOkDataResponse(
                    "Request OK",
                    {"TrainingLogs": training_logs}
                )

            else:
                return ResponseHelper.ReturnNotFoundResponse("No Logs Found!")

        # Workouts by week
        elif week and year and not log_type:

            training_log_dao = TrainingLogDao()
            training_logs = training_log_dao.GetWorkoutsByWeek(week, year, user_id, log_type=None)

            if training_logs:
                return ResponseHelper.ReturnOkDataResponse(
                    "Request OK",
                    {"TrainingLogs": training_logs}
                )

            else:
                return ResponseHelper.ReturnNotFoundResponse("No Logs Found!")

        # Workouts by week
        elif week and year and log_type:

            training_log_dao = TrainingLogDao()
            training_logs = training_log_dao.GetWorkoutsByWeek(week, year, user_id, log_type)

            if training_logs:
                return ResponseHelper.ReturnOkDataResponse(
                    "Request OK",
                    {"TrainingLogs": training_logs}
                )

            else:
                return ResponseHelper.ReturnNotFoundResponse("No Logs Found!")

        # Workouts by month
        elif month and year:

            month_end = calendar.monthrange(int(year), int(month))[1]

            training_log_dao = TrainingLogDao()
            training_logs = training_log_dao.GetWorkoutsByMonth(month, month_end, year, user_id)

            if training_logs:
                return ResponseHelper.ReturnOkDataResponse(
                    "Request OK",
                    {"TrainingLogs": training_logs}
                )

            else:
                return ResponseHelper.ReturnNotFoundResponse("No Logs Found!")

        # Bad request if no combinations are matched
        else:

            return ResponseHelper.ReturnBadRequestResponse()