123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package in.ocsf.these.days.app.service;/* kpmy 19.02.2017 */
- import com.pengrad.telegrambot.model.Update;
- import in.ocsf.these.days.app.SM;
- import in.ocsf.these.days.app.messaging.UpdateHelper;
- import in.ocsf.these.days.app.object.ChatEvent;
- import in.ocsf.these.days.app.object.ChatState;
- import in.ocsf.these.days.app.object.User;
- import in.ocsf.these.days.app.repo.CardRepositrory;
- import in.ocsf.these.days.app.repo.MessageRepository;
- import in.ocsf.these.days.app.repo.UserRepository;
- import org.apache.log4j.Logger;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.statemachine.StateMachine;
- import org.springframework.statemachine.config.StateMachineFactory;
- import org.springframework.statemachine.persist.DefaultStateMachinePersister;
- import org.springframework.statemachine.persist.StateMachinePersister;
- import org.springframework.stereotype.Service;
- import java.util.List;
- @Service
- public class UpdateService {
- private final Logger log = Logger.getLogger(getClass());
- @Autowired
- private UserRepository userRepo;
- @Autowired
- private MessageRepository msgRepo;
- @Autowired
- private CardRepositrory cardRepo;
- @Autowired
- private StateMachineFactory<ChatState, ChatEvent> stateMachineFactory;
- private void handleUpdate(UpdateHelper upd) throws Exception {
- if (!upd.isEdit()) {
- if (upd.hasText()) {
- if (upd.isCommand()) {
- List<String> cmd = upd.getSplitCommand();
- switch (cmd.get(0)) {
- case "/start":
- User user = User.fromUser(upd.getUser());
- StateMachine<ChatState, ChatEvent> state = stateMachineFactory.getStateMachine(Long.toHexString(user.getId()));
- state.start();
- StateMachinePersister<ChatState, ChatEvent, Long> persist = new DefaultStateMachinePersister<>(new SM.InMemoryStateMachinePersist());
- persist.persist(state, user.getId());
- log.info(Long.toHexString(user.getId()));
- break;
- }
- } else {
- }
- }
- }
- }
- public void handleUpdate(Update upd) {
- try {
- handleUpdate(UpdateHelper.from(upd));
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
|