예제 #1
0
def simple_user_input(message):

    logger.info(message.text)

    session = db_make_session()
    processor = ExpenseInputProcessor(session=session,
                                      message_id=message.message_id,
                                      user_id=message.from_user.id,
                                      message_datetime=message.date,
                                      is_sms=False)
    speaker = BotSpeaker(
        session=session,
        chat_id=message.chat.id,
        message_id=message.message_id,
        conversation=processor.conversation,
    )
    statist = Statist(session=session)

    usecase = ExpenseInputUsecase(
        session=session,
        processor=processor,
        speaker=speaker,
        statist=statist,
        text_maker=TextMaker,
        message_text=message.text,
        regexp=RE_SIMPLE,
    )
    usecase.execute()

    session.commit()
    session.close()
예제 #2
0
def remove_purhcase(message):

    logger.info(message.text)

    session = db_make_session()

    processor = ExpenseEditorProcessor(session=session)

    speaker = BotSpeaker(
        session=session,
        chat_id=message.chat.id,
    )

    statist = Statist(session=session)

    usecase = PurchaseDeleteUseCase(
        session=session,
        processor=processor,
        speaker=speaker,
        statist=statist,
        text_maker=TextMaker,
        message_text=message.text,
    )
    usecase.execute()

    session.commit()
    session.close()
예제 #3
0
def simple_callback_view(call):

    logger.info(call.message.text + ' - ' + call.data)

    session = db_make_session()
    expense_input_kind, message_id, position, expense = call.data.split(
        DELIMETER)
    processor = ExpenseCallbackProcessor(
        session=session,
        message_id=message_id,
        position=position,
    )
    speaker = BotSpeaker(
        session=session,
        chat_id=call.message.chat.id,
        message_id=call.message.message_id,
        conversation=processor.conversation,
    )
    statist = Statist(session=session)

    usecase = InputCallbackUsecase(session=session,
                                   processor=processor,
                                   speaker=speaker,
                                   text_maker=TextMaker,
                                   statist=statist)
    usecase.execute(expense=expense)

    session.commit()
    session.close()
예제 #4
0
def detailed_month_stats_callback_view(call):

    logger.info(call.data)

    session = db_make_session()
    month_callback_call, month_code = call.data.split(DELIMETER)

    statist = Statist(session=session)
    speaker = BotSpeaker(
        session=session,
        chat_id=call.message.chat.id,
        message_id=call.message.message_id,
    )
    usecase = StatsCallbackUsecase(session=session,
                                   speaker=speaker,
                                   text_maker=TextMaker,
                                   statist=statist)

    usecase.execute(month_code=month_code, message_id=call.message.message_id)

    session.close()
예제 #5
0
def get_month_detailed_stat_choices(message):

    logger.info(message.text)

    session = db_make_session()

    speaker = BotSpeaker(
        session=session,
        chat_id=message.chat.id,
        message_id=message.message_id,
    )

    usecase = StatsUsecase(
        session=session,
        speaker=speaker,
        text_maker=TextMaker,
    )
    usecase.execute()

    session.commit()
    session.close()
예제 #6
0
 def wrap(*args, **kwargs):
     session = db_make_session()
     func_result = func(session, *args, **kwargs)
     session.commit()
     session.close()
     return func_result