Exemple #1
0
def manual_sign_in_content(account_id, current_date):
    """
    Update user status and generate manual check-in message.

    :param account_id: user account id
    :param current_date: current date by local time.
    :return: message content list
    """

    content = get_status_by_user(account_id, current_date)

    if content is not None:
        status = content[0]
        process = content[1]
        if process is not None:
            return [invalid_message()]

        if status == "wait_in" or status == "in_done":
            delete_status_by_user_date(account_id, current_date)

    yield asyncio.sleep(1)

    insert_replace_status_by_user_date(account_id, current_date, "wait_in")

    return manual_sign_in_message()
def confirm_in(account_id, current_date, create_time, callback):
    """
    This function is triggered when the user clicks confirm check-in.
    Update user's input reminder status, progress.

    :param account_id: user account id.
    :param current_date: current date by local time.
    :param create_time: Time the request arrived at the server.
    :param callback: User triggered callback.
    :return: None
    """

    content = yield deal_confirm_in(account_id, create_time, callback)
    yield push_message(account_id, content)

    insert_replace_status_by_user_date(account_id,
                                       current_date,
                                       status="in_done",
                                       process="sign_in_done")