72 lines
1.5 KiB
Go
72 lines
1.5 KiB
Go
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")
|
|
}
|