mv mongo config to secrets
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
af0b834bf3
commit
f066e01d21
|
@ -30,6 +30,10 @@ steps:
|
||||||
environment:
|
environment:
|
||||||
TOKEN:
|
TOKEN:
|
||||||
from_secret: bot_token
|
from_secret: bot_token
|
||||||
|
MONGO_URL:
|
||||||
|
from_secret: mongo_url
|
||||||
|
DB_NAME:
|
||||||
|
from_secret: db_name
|
||||||
PASSWORD:
|
PASSWORD:
|
||||||
from_secret: ssh_pass
|
from_secret: ssh_pass
|
||||||
settings:
|
settings:
|
||||||
|
@ -41,11 +45,13 @@ steps:
|
||||||
from_secret: ssh_key
|
from_secret: ssh_key
|
||||||
port:
|
port:
|
||||||
from_secret: ssh_port
|
from_secret: ssh_port
|
||||||
envs: [ TOKEN,PASSWORD ]
|
envs: [ TOKEN,MONGO_URL,DB_NAME,PASSWORD ]
|
||||||
command_timeout: 10s
|
command_timeout: 10s
|
||||||
script:
|
script:
|
||||||
- cd deploys/valera_tg_bot
|
- cd deploys/valera_tg_bot
|
||||||
- echo $${TOKEN} > token.txt
|
- echo $${TOKEN} > token.txt
|
||||||
|
- echo $${MONGO_URL} > mongo_url.txt
|
||||||
|
- echo $${DB_NAME} > "db_name.txt"
|
||||||
- echo $${PASSWORD} | sudo -S systemctl restart valera
|
- echo $${PASSWORD} | sudo -S systemctl restart valera
|
||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
|
|
|
@ -27,3 +27,5 @@ bin
|
||||||
|
|
||||||
# bot
|
# bot
|
||||||
token.txt
|
token.txt
|
||||||
|
mongo_url.txt
|
||||||
|
db_name.txt
|
||||||
|
|
|
@ -8,10 +8,10 @@ type Config struct {
|
||||||
CaloriesCollectionName string
|
CaloriesCollectionName string
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewConfig() *Config {
|
func NewConfig(mongoURl string, dbName string) *Config {
|
||||||
return &Config{
|
return &Config{
|
||||||
MongoURL: "mongodb://mongo:o6bbyog3DHG0GYdu@158.160.11.219:27027",
|
MongoURL: mongoURl,
|
||||||
DBName: "valera",
|
DBName: dbName,
|
||||||
ChatsCollectionName: "chats",
|
ChatsCollectionName: "chats",
|
||||||
WorkoutsCollectionName: "workouts",
|
WorkoutsCollectionName: "workouts",
|
||||||
CaloriesCollectionName: "calories",
|
CaloriesCollectionName: "calories",
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
package db
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
|
type Calories struct {
|
||||||
|
ChatID int64 `bson:"chat_id"`
|
||||||
|
Count int `bson:"count"`
|
||||||
|
CreatedAt time.Time `bson:"created_at"`
|
||||||
|
Username string `bson:"username"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewCalories(
|
||||||
|
count int,
|
||||||
|
username string,
|
||||||
|
) *Calories {
|
||||||
|
loc, _ := time.LoadLocation("Asia/Novosibirsk")
|
||||||
|
return &Calories{
|
||||||
|
Count: count,
|
||||||
|
Username: username,
|
||||||
|
CreatedAt: time.Now().In(loc),
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
package db
|
||||||
|
|
||||||
|
const (
|
||||||
|
UserStateNone = UserState("")
|
||||||
|
UserStateGo = UserState("Go")
|
||||||
|
UserStateEat = UserState("Eat")
|
||||||
|
)
|
||||||
|
|
||||||
|
type UserState string
|
||||||
|
|
||||||
|
type Chat struct {
|
||||||
|
ChatID int64 `bson:"chat_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ChatInfo struct {
|
||||||
|
ChatID int64 `bson:"chat_id"`
|
||||||
|
Status string `bson:"status"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *ChatInfo) GetStatus() UserState {
|
||||||
|
return UserState(c.Status)
|
||||||
|
}
|
129
db/db.go
129
db/db.go
|
@ -10,88 +10,33 @@ import (
|
||||||
"valera/config"
|
"valera/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
type DB struct {
|
||||||
UserStateNone = UserState("")
|
cfg *config.Config
|
||||||
UserStateGo = UserState("Go")
|
|
||||||
UserStateEat = UserState("Eat")
|
|
||||||
)
|
|
||||||
|
|
||||||
type UserState string
|
|
||||||
|
|
||||||
type chatDTO struct {
|
|
||||||
ChatID int64 `bson:"chat_id"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type ChatInfoDTO struct {
|
func NewDB(
|
||||||
ChatID int64 `bson:"chat_id"`
|
mongoURL string,
|
||||||
Status string `bson:"status"`
|
dbName string,
|
||||||
}
|
) *DB {
|
||||||
|
return &DB{
|
||||||
func (c *ChatInfoDTO) GetStatus() UserState {
|
cfg: config.NewConfig(mongoURL, dbName),
|
||||||
return UserState(c.Status)
|
|
||||||
}
|
|
||||||
|
|
||||||
type Workout struct {
|
|
||||||
ChatID int64 `bson:"chat_id"`
|
|
||||||
Name string `bson:"name"`
|
|
||||||
Count int `bson:"count"`
|
|
||||||
CreatedAt time.Time `bson:"created_at"`
|
|
||||||
Username string `bson:"username"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewWorkout(
|
|
||||||
name string,
|
|
||||||
count int,
|
|
||||||
username string,
|
|
||||||
) *Workout {
|
|
||||||
loc, _ := time.LoadLocation("Asia/Novosibirsk")
|
|
||||||
return &Workout{
|
|
||||||
Name: name,
|
|
||||||
Count: count,
|
|
||||||
Username: username,
|
|
||||||
CreatedAt: time.Now().In(loc),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type Calories struct {
|
func (db *DB) AddChat(chatID int64) error {
|
||||||
ChatID int64 `bson:"chat_id"`
|
|
||||||
Count int `bson:"count"`
|
|
||||||
CreatedAt time.Time `bson:"created_at"`
|
|
||||||
Username string `bson:"username"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewCalories(
|
|
||||||
count int,
|
|
||||||
username string,
|
|
||||||
) *Calories {
|
|
||||||
loc, _ := time.LoadLocation("Asia/Novosibirsk")
|
|
||||||
return &Calories{
|
|
||||||
Count: count,
|
|
||||||
Username: username,
|
|
||||||
CreatedAt: time.Now().In(loc),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var cfg *config.Config
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
cfg = config.NewConfig()
|
|
||||||
}
|
|
||||||
|
|
||||||
func AddChat(chatID int64) error {
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
client, err := mongo.Connect(ctx, options.Client().ApplyURI(cfg.MongoURL))
|
client, err := mongo.Connect(ctx, options.Client().ApplyURI(db.cfg.MongoURL))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
collection := client.Database(cfg.DBName).Collection(cfg.ChatsCollectionName)
|
collection := client.Database(db.cfg.DBName).Collection(db.cfg.ChatsCollectionName)
|
||||||
|
|
||||||
result := collection.FindOne(ctx, bson.M{"chat_id": chatID})
|
result := collection.FindOne(ctx, bson.M{"chat_id": chatID})
|
||||||
if result.Err() == mongo.ErrNoDocuments {
|
if result.Err() == mongo.ErrNoDocuments {
|
||||||
if _, err := collection.InsertOne(ctx, &chatDTO{ChatID: chatID}); err != nil {
|
if _, err := collection.InsertOne(ctx, &Chat{ChatID: chatID}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -99,11 +44,11 @@ func AddChat(chatID int64) error {
|
||||||
return result.Err()
|
return result.Err()
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddWorkout(chatID int64, workout *Workout) error {
|
func (db *DB) AddWorkout(chatID int64, workout *Workout) error {
|
||||||
if workout.Count <= 0 {
|
if workout.Count <= 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if err := AddChat(chatID); err != nil {
|
if err := db.AddChat(chatID); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
workout.ChatID = chatID
|
workout.ChatID = chatID
|
||||||
|
@ -111,12 +56,12 @@ func AddWorkout(chatID int64, workout *Workout) error {
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
client, err := mongo.Connect(ctx, options.Client().ApplyURI(cfg.MongoURL))
|
client, err := mongo.Connect(ctx, options.Client().ApplyURI(db.cfg.MongoURL))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
collection := client.Database(cfg.DBName).Collection(cfg.WorkoutsCollectionName)
|
collection := client.Database(db.cfg.DBName).Collection(db.cfg.WorkoutsCollectionName)
|
||||||
_, err = collection.InsertOne(
|
_, err = collection.InsertOne(
|
||||||
ctx,
|
ctx,
|
||||||
workout,
|
workout,
|
||||||
|
@ -124,11 +69,11 @@ func AddWorkout(chatID int64, workout *Workout) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddCalories(chatID int64, calories *Calories) error {
|
func (db *DB) AddCalories(chatID int64, calories *Calories) error {
|
||||||
if calories.Count <= 0 {
|
if calories.Count <= 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if err := AddChat(chatID); err != nil {
|
if err := db.AddChat(chatID); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
calories.ChatID = chatID
|
calories.ChatID = chatID
|
||||||
|
@ -136,12 +81,12 @@ func AddCalories(chatID int64, calories *Calories) error {
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
client, err := mongo.Connect(ctx, options.Client().ApplyURI(cfg.MongoURL))
|
client, err := mongo.Connect(ctx, options.Client().ApplyURI(db.cfg.MongoURL))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
collection := client.Database(cfg.DBName).Collection(cfg.CaloriesCollectionName)
|
collection := client.Database(db.cfg.DBName).Collection(db.cfg.CaloriesCollectionName)
|
||||||
_, err = collection.InsertOne(
|
_, err = collection.InsertOne(
|
||||||
ctx,
|
ctx,
|
||||||
calories,
|
calories,
|
||||||
|
@ -149,36 +94,36 @@ func AddCalories(chatID int64, calories *Calories) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetChatInfo(chatID int64) (*ChatInfoDTO, error) {
|
func (db *DB) GetChatInfo(chatID int64) (*ChatInfo, error) {
|
||||||
if err := AddChat(chatID); err != nil {
|
if err := db.AddChat(chatID); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
client, err := mongo.Connect(ctx, options.Client().ApplyURI(cfg.MongoURL))
|
client, err := mongo.Connect(ctx, options.Client().ApplyURI(db.cfg.MongoURL))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
collection := client.Database(cfg.DBName).Collection(cfg.ChatsCollectionName)
|
collection := client.Database(db.cfg.DBName).Collection(db.cfg.ChatsCollectionName)
|
||||||
chatInfoDTO := &ChatInfoDTO{}
|
chatInfoDTO := &ChatInfo{}
|
||||||
if err := collection.FindOne(ctx, bson.M{"chat_id": chatID}).Decode(chatInfoDTO); err != nil {
|
if err := collection.FindOne(ctx, bson.M{"chat_id": chatID}).Decode(chatInfoDTO); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return chatInfoDTO, err
|
return chatInfoDTO, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetStatusToChat(chatID int64, status UserState) error {
|
func (db *DB) SetStatusToChat(chatID int64, status UserState) error {
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
client, err := mongo.Connect(ctx, options.Client().ApplyURI(cfg.MongoURL))
|
client, err := mongo.Connect(ctx, options.Client().ApplyURI(db.cfg.MongoURL))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
collection := client.Database(cfg.DBName).Collection(cfg.ChatsCollectionName)
|
collection := client.Database(db.cfg.DBName).Collection(db.cfg.ChatsCollectionName)
|
||||||
_, err = collection.UpdateOne(
|
_, err = collection.UpdateOne(
|
||||||
ctx,
|
ctx,
|
||||||
bson.M{"chat_id": chatID},
|
bson.M{"chat_id": chatID},
|
||||||
|
@ -187,14 +132,14 @@ func SetStatusToChat(chatID int64, status UserState) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetStat(chatID int64) (map[string]int, error) {
|
func (db *DB) GetStat(chatID int64) (map[string]int, error) {
|
||||||
if err := AddChat(chatID); err != nil {
|
if err := db.AddChat(chatID); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
client, err := mongo.Connect(ctx, options.Client().ApplyURI(cfg.MongoURL))
|
client, err := mongo.Connect(ctx, options.Client().ApplyURI(db.cfg.MongoURL))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -204,7 +149,7 @@ func GetStat(chatID int64) (map[string]int, error) {
|
||||||
|
|
||||||
res := map[string]int{}
|
res := map[string]int{}
|
||||||
|
|
||||||
collection := client.Database(cfg.DBName).Collection(cfg.WorkoutsCollectionName)
|
collection := client.Database(db.cfg.DBName).Collection(db.cfg.WorkoutsCollectionName)
|
||||||
cursor, err := collection.Find(
|
cursor, err := collection.Find(
|
||||||
ctx,
|
ctx,
|
||||||
bson.M{
|
bson.M{
|
||||||
|
@ -226,7 +171,7 @@ func GetStat(chatID int64) (map[string]int, error) {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
caloriesCollection := client.Database(cfg.DBName).Collection(cfg.CaloriesCollectionName)
|
caloriesCollection := client.Database(db.cfg.DBName).Collection(db.cfg.CaloriesCollectionName)
|
||||||
caloriesCursor, err := caloriesCollection.Find(
|
caloriesCursor, err := caloriesCollection.Find(
|
||||||
ctx,
|
ctx,
|
||||||
bson.M{
|
bson.M{
|
||||||
|
@ -251,23 +196,23 @@ func GetStat(chatID int64) (map[string]int, error) {
|
||||||
return res, err
|
return res, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetAllChats() ([]int64, error) {
|
func (db *DB) GetAllChats() ([]int64, error) {
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
client, err := mongo.Connect(ctx, options.Client().ApplyURI(cfg.MongoURL))
|
client, err := mongo.Connect(ctx, options.Client().ApplyURI(db.cfg.MongoURL))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
collection := client.Database(cfg.DBName).Collection(cfg.ChatsCollectionName)
|
collection := client.Database(db.cfg.DBName).Collection(db.cfg.ChatsCollectionName)
|
||||||
cursor, err := collection.Find(ctx, bson.M{})
|
cursor, err := collection.Find(ctx, bson.M{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
var res []int64
|
var res []int64
|
||||||
for cursor.Next(context.Background()) {
|
for cursor.Next(context.Background()) {
|
||||||
var result ChatInfoDTO
|
var result ChatInfo
|
||||||
if err := cursor.Decode(&result); err != nil {
|
if err := cursor.Decode(&result); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
package db
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
|
type Workout struct {
|
||||||
|
ChatID int64 `bson:"chat_id"`
|
||||||
|
Name string `bson:"name"`
|
||||||
|
Count int `bson:"count"`
|
||||||
|
CreatedAt time.Time `bson:"created_at"`
|
||||||
|
Username string `bson:"username"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewWorkout(
|
||||||
|
name string,
|
||||||
|
count int,
|
||||||
|
username string,
|
||||||
|
) *Workout {
|
||||||
|
loc, _ := time.LoadLocation("Asia/Novosibirsk")
|
||||||
|
return &Workout{
|
||||||
|
Name: name,
|
||||||
|
Count: count,
|
||||||
|
Username: username,
|
||||||
|
CreatedAt: time.Now().In(loc),
|
||||||
|
}
|
||||||
|
}
|
61
main.go
61
main.go
|
@ -16,7 +16,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
version = "v1.2.0"
|
version = "v1.3.0"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Opts struct {
|
type Opts struct {
|
||||||
|
@ -26,8 +26,8 @@ type Opts struct {
|
||||||
|
|
||||||
var opts Opts
|
var opts Opts
|
||||||
|
|
||||||
func readToken() (string, error) {
|
func readFile(filename string) (string, error) {
|
||||||
b, err := ioutil.ReadFile("token.txt")
|
b, err := ioutil.ReadFile(filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@ func run() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if opts.Token == "" {
|
if opts.Token == "" {
|
||||||
token, err := readToken()
|
token, err := readFile("token.txt")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
@ -63,6 +63,25 @@ func run() {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mongoURL, err := readFile("mongo_url.txt")
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
mongoURL = strings.ReplaceAll(mongoURL, "\n", "")
|
||||||
|
fmt.Println(mongoURL)
|
||||||
|
|
||||||
|
dbName, err := readFile("db_name.txt")
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
dbName = strings.ReplaceAll(dbName, "\n", "")
|
||||||
|
fmt.Println(dbName)
|
||||||
|
|
||||||
|
dataBase := db.NewDB(
|
||||||
|
mongoURL,
|
||||||
|
dbName,
|
||||||
|
)
|
||||||
|
|
||||||
u := tgbot.NewUpdate(0)
|
u := tgbot.NewUpdate(0)
|
||||||
u.Timeout = 60
|
u.Timeout = 60
|
||||||
|
|
||||||
|
@ -73,7 +92,7 @@ func run() {
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
http.HandleFunc("/go", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/go", func(w http.ResponseWriter, r *http.Request) {
|
||||||
chats, err := db.GetAllChats()
|
chats, err := dataBase.GetAllChats()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.Header().Add("Content-Type", "application/json")
|
w.Header().Add("Content-Type", "application/json")
|
||||||
w.WriteHeader(http.StatusInternalServerError)
|
w.WriteHeader(http.StatusInternalServerError)
|
||||||
|
@ -81,7 +100,7 @@ func run() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for _, chatID := range chats {
|
for _, chatID := range chats {
|
||||||
sendGoToChat(bot, chatID)
|
sendGoToChat(bot, dataBase, chatID)
|
||||||
}
|
}
|
||||||
w.Header().Add("Content-Type", "application/json")
|
w.Header().Add("Content-Type", "application/json")
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
|
@ -89,7 +108,7 @@ func run() {
|
||||||
})
|
})
|
||||||
|
|
||||||
http.HandleFunc("/stat", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/stat", func(w http.ResponseWriter, r *http.Request) {
|
||||||
chats, err := db.GetAllChats()
|
chats, err := dataBase.GetAllChats()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
w.Header().Add("Content-Type", "application/json")
|
w.Header().Add("Content-Type", "application/json")
|
||||||
|
@ -98,7 +117,7 @@ func run() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for _, chatID := range chats {
|
for _, chatID := range chats {
|
||||||
if err := sendStatToChat(bot, chatID, "Напоминаю:\n- Cегодня больше не жрем!\n\n"); err != nil {
|
if err := sendStatToChat(bot, dataBase, chatID, "Напоминаю:\n- Cегодня больше не жрем!\n\n"); err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
w.Header().Add("Content-Type", "application/json")
|
w.Header().Add("Content-Type", "application/json")
|
||||||
w.WriteHeader(http.StatusInternalServerError)
|
w.WriteHeader(http.StatusInternalServerError)
|
||||||
|
@ -128,7 +147,7 @@ func run() {
|
||||||
chatID := update.Message.Chat.ID
|
chatID := update.Message.Chat.ID
|
||||||
username := update.Message.From.UserName
|
username := update.Message.From.UserName
|
||||||
|
|
||||||
userInfoDTO, err := db.GetChatInfo(chatID)
|
userInfoDTO, err := dataBase.GetChatInfo(chatID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
continue
|
continue
|
||||||
|
@ -140,7 +159,7 @@ func run() {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if err := db.AddWorkout(chatID, db.NewWorkout("Отжимания", count, username)); err != nil {
|
if err := dataBase.AddWorkout(chatID, db.NewWorkout("Отжимания", count, username)); err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
@ -151,7 +170,7 @@ func run() {
|
||||||
msg := tgbot.NewMessage(chatID, msgText)
|
msg := tgbot.NewMessage(chatID, msgText)
|
||||||
msg.ReplyMarkup = tgbot.NewRemoveKeyboard(false)
|
msg.ReplyMarkup = tgbot.NewRemoveKeyboard(false)
|
||||||
_, _ = bot.Send(msg)
|
_, _ = bot.Send(msg)
|
||||||
if err := db.SetStatusToChat(chatID, db.UserStateNone); err != nil {
|
if err := dataBase.SetStatusToChat(chatID, db.UserStateNone); err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
|
@ -161,7 +180,7 @@ func run() {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if err := db.AddCalories(chatID, db.NewCalories(count, username)); err != nil {
|
if err := dataBase.AddCalories(chatID, db.NewCalories(count, username)); err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
@ -170,7 +189,7 @@ func run() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
_, _ = bot.Send(tgbot.NewMessage(chatID, fmt.Sprintf("Калории, фу, %s, записал.", text)))
|
_, _ = bot.Send(tgbot.NewMessage(chatID, fmt.Sprintf("Калории, фу, %s, записал.", text)))
|
||||||
if err := db.SetStatusToChat(chatID, db.UserStateNone); err != nil {
|
if err := dataBase.SetStatusToChat(chatID, db.UserStateNone); err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
|
@ -180,7 +199,7 @@ func run() {
|
||||||
switch command {
|
switch command {
|
||||||
case commands.Start:
|
case commands.Start:
|
||||||
_, _ = bot.Send(tgbot.NewMessage(chatID, fmt.Sprintf("Здорова, я Валера (%s), твой тренер (%d).", version, chatID)))
|
_, _ = bot.Send(tgbot.NewMessage(chatID, fmt.Sprintf("Здорова, я Валера (%s), твой тренер (%d).", version, chatID)))
|
||||||
if err := db.SetStatusToChat(chatID, db.UserStateNone); err != nil {
|
if err := dataBase.SetStatusToChat(chatID, db.UserStateNone); err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
case commands.Help:
|
case commands.Help:
|
||||||
|
@ -188,15 +207,15 @@ func run() {
|
||||||
case commands.Ping:
|
case commands.Ping:
|
||||||
_, _ = bot.Send(tgbot.NewMessage(chatID, "pong"))
|
_, _ = bot.Send(tgbot.NewMessage(chatID, "pong"))
|
||||||
case commands.Go:
|
case commands.Go:
|
||||||
sendGoToChat(bot, chatID)
|
sendGoToChat(bot, dataBase, chatID)
|
||||||
case commands.Stat:
|
case commands.Stat:
|
||||||
if err := sendStatToChat(bot, chatID, ""); err != nil {
|
if err := sendStatToChat(bot, dataBase, chatID, ""); err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
case commands.Eat:
|
case commands.Eat:
|
||||||
if _, err := bot.Send(tgbot.NewMessage(chatID, "Вижу ты поел, отпишись сколько калорий было")); err == nil {
|
if _, err := bot.Send(tgbot.NewMessage(chatID, "Вижу ты поел, отпишись сколько калорий было")); err == nil {
|
||||||
if err := db.SetStatusToChat(chatID, db.UserStateEat); err != nil {
|
if err := dataBase.SetStatusToChat(chatID, db.UserStateEat); err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -204,7 +223,7 @@ func run() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func sendGoToChat(bot *tgbot.BotAPI, chatID int64) {
|
func sendGoToChat(bot *tgbot.BotAPI, dataBase *db.DB, chatID int64) {
|
||||||
msg := tgbot.NewMessage(chatID, "Давай немного разомнемся, отжимания, отпишись сколько раз ты выполнил упражнение")
|
msg := tgbot.NewMessage(chatID, "Давай немного разомнемся, отжимания, отпишись сколько раз ты выполнил упражнение")
|
||||||
msg.ReplyMarkup = tgbot.NewReplyKeyboard(
|
msg.ReplyMarkup = tgbot.NewReplyKeyboard(
|
||||||
tgbot.NewKeyboardButtonRow(
|
tgbot.NewKeyboardButtonRow(
|
||||||
|
@ -216,14 +235,14 @@ func sendGoToChat(bot *tgbot.BotAPI, chatID int64) {
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
if _, err := bot.Send(msg); err == nil {
|
if _, err := bot.Send(msg); err == nil {
|
||||||
if err := db.SetStatusToChat(chatID, db.UserStateGo); err != nil {
|
if err := dataBase.SetStatusToChat(chatID, db.UserStateGo); err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func sendStatToChat(bot *tgbot.BotAPI, chatID int64, prefix string) error {
|
func sendStatToChat(bot *tgbot.BotAPI, dataBase *db.DB, chatID int64, prefix string) error {
|
||||||
stat, err := db.GetStat(chatID)
|
stat, err := dataBase.GetStat(chatID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue