package main import ( "encoding/json" "fmt" "io" "log" "math/rand" "os" "penahub.gitlab.yandexcloud.net/backend/quiz/telegram/client" "penahub.gitlab.yandexcloud.net/backend/quiz/telegram/models" "penahub.gitlab.yandexcloud.net/backend/quiz/telegram/respondent" stateManager "penahub.gitlab.yandexcloud.net/backend/quiz/telegram/state_manager" "time" ) var dataSetMap map[string]models.Question func init() { f, err := os.Open("treedata.json") if err != nil { log.Fatalf("err open json file: %v", err) } defer f.Close() values, err := io.ReadAll(f) if err != nil { log.Fatalf("err read json file: %v", err) } var dataSet []models.Question err = json.Unmarshal(values, &dataSet) if err != nil { log.Fatalf("err unmarshall json: %v", err) } dataSetMap = make(map[string]models.Question) for _, data := range dataSet { dataSetMap[data.Title] = data } } func main() { rand.Seed(time.Now().UnixNano()) mockClient := client.NewClient() mockStateManager := stateManager.NewStateManager(stateManager.Deps{ Questions: dataSetMap, State: "q00", Client: mockClient, }) mockRespondent := respondent.NewRespondent(mockStateManager) mockStateManager.SendQuestion() for { if _, ok := dataSetMap[mockStateManager.State]; !ok { fmt.Println("state not found") break } mockRespondent.Respond("q00") fmt.Println("respond") } for number, msg := range mockClient.Messages { fmt.Println(fmt.Sprintf("message %d: %s", number, msg)) } //} fmt.Println("Complete") }