diff --git a/cmd/bot/main.go b/cmd/bot/main.go index e3c365a..02140b1 100644 --- a/cmd/bot/main.go +++ b/cmd/bot/main.go @@ -124,12 +124,12 @@ func CreateAdaptersGRPC() (ports.DolarService, ports.UserService, *grpc.ClientCo // userID inst=> comma separated string var opts []grpc.DialOption opts = append(opts, grpc.WithTransportCredentials(insecure.NewCredentials())) - dolarConn, err := grpc.Dial(config.GetDollarServiceURL(), opts...) + dolarConn, err := grpc.NewClient(config.GetDollarServiceURL(), opts...) if err != nil { log.Error("creating gerpc conn", "error", err) panic(err) } - userConn, err := grpc.Dial(config.GetUserServiceURL(), opts...) + userConn, err := grpc.NewClient(config.GetUserServiceURL(), opts...) if err != nil { log.Error("creating gerpc conn", "error", err) panic(err) diff --git a/go.sum b/go.sum index 7719fa3..5416efd 100644 --- a/go.sum +++ b/go.sum @@ -4,51 +4,31 @@ git.maximotejeda.com/maximo/tgb-user v0.0.4 h1:TJQl+J2OEAstHUqlzDdYQ960QLgp+5Q/k git.maximotejeda.com/maximo/tgb-user v0.0.4/go.mod h1:7KpTUAnwap6cp5pHRKgJygxrN3rftAdTkpCG2zJIpYI= github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 h1:wG8n/XJQ07TmjbITcGiUaOtXxdrINDz1b0J1w0SzqDc= github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1/go.mod h1:A2S0CWkNylc2phvKXWBBdD3K0iGnDBGbzRpISP2zBl8= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4= -github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= -github.com/nats-io/nats.go v1.34.1 h1:syWey5xaNHZgicYBemv0nohUPPmaLteiBEUT6Q5+F/4= -github.com/nats-io/nats.go v1.34.1/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8= github.com/nats-io/nats.go v1.37.0 h1:07rauXbVnnJvv1gfIyghFEo6lUcYRY0WXc3x7x0vUxE= github.com/nats-io/nats.go v1.37.0/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8= -github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI= -github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc= github.com/nats-io/nkeys v0.4.8 h1:+wee30071y3vCZAYRsnrmIPaOe47A/SkK/UBDPdIV70= github.com/nats-io/nkeys v0.4.8/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= -golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= golang.org/x/crypto v0.30.0 h1:RwoQn3GkWiMkzlX562cLB7OxWvjH1L8xutO2WoJcRoY= golang.org/x/crypto v0.30.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= -golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI= golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240429193739-8cf5692501f6 h1:DujSIu+2tC9Ht0aPNA7jgj23Iq8Ewi5sgkQ++wdvonE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240429193739-8cf5692501f6/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a h1:hgh8P4EuoxpsuKMXX/To36nOFD7vixReXgn8lPGnt+o= google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= -google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= -google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= google.golang.org/grpc v1.68.1 h1:oI5oTa11+ng8r8XMMN7jAOmWfPZWbYpCFaMUTACxkM0= google.golang.org/grpc v1.68.1/go.mod h1:+q1XYFJjShcqn0QZHvCyeR4CXPA+llXIeUIfIe00waw= -google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= -google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= diff --git a/internal/adapters/chat/chat.go b/internal/adapters/chat/chat.go index ca1e17d..8b74a20 100644 --- a/internal/adapters/chat/chat.go +++ b/internal/adapters/chat/chat.go @@ -1,11 +1,8 @@ package chat import ( - "bytes" - "context" "fmt" "regexp" - "strconv" "strings" "sync" "unicode" @@ -51,114 +48,12 @@ func HandleChat(bot *tgb.BotAPI, updt *tgb.Update) { defer EmptyChat(chat) text := NormalizeText(updt.Message.Text) textList := strings.Split(text, " ") - msg := tgb.NewMessage(updt.Message.Chat.ID, "") - if len(textList) >= 1 && MessageChecker(text) == "digit" { - // in case of message match a cedula - ced, err := info.NewCedula(text) - if err != nil { - msg.Text = "cedula no reconocida " + err.Error() - } else { - msg, photoMsg := ProcessByCedula(*ced) - msg.ChatID = updt.Message.Chat.ID - if photoMsg != nil { - photoMsg.ChatID = updt.Message.Chat.ID - bot.Send(photoMsg) - } - bot.Send(msg) - return - } - } else if len(textList) >= 2 && MessageChecker(text) == "word" { - msg := ProcessByName(textList) - msg.ChatID = updt.Message.Chat.ID - bot.Send(msg) - } - + msg := tgb.NewMessage(updt.Message.Chat.ID, strings.Join(textList, " ")) msg.ReplyToMessageID = updt.Message.MessageID bot.Send(msg) } -// ProcessByCedula -// -// When a text arrives the chat if it match a cedula try to query db -func ProcessByCedula(dbS *db.DB, ced info.Cedula) (message *tgb.MessageConfig, fotoMsg *tgb.PhotoConfig) { - msg := tgb.NewMessage(0, "") - message = &msg - ctx := context.Background() - info, err := info.GetByCedula(ctx, dbS, ced) - if err != nil { - msg.Text = "error buscando cedula " + err.Error() - } - if info != nil { - msg.Text = fmt.Sprintf(` -Nombres: %s -Apellidos: %s %s -Cedula: %s -Direccion: %s -Telefono: %s -`, - strings.ToLower(info.Nombres), strings.ToLower(info.Apellido1), strings.ToLower(info.Apellido2), - info.MunCed+info.SeqCed+info.VerCed, RemoveSpaces(info.Direccion), info.Telefono) - } - foto, err := fotos.GetImageByCedulas(ctx, dbS, ced) - if err != nil { - fmt.Println("Photo not found", err.Error()) - return - } - if foto != nil { - rq := tgb.FileReader{Name: fmt.Sprintf("%s-%s-%s", ced.MunCed, ced.SeqCed, ced.VerCed), Reader: bytes.NewReader(foto)} - fotost := tgb.NewPhoto(msg.ChatID, rq) - fotoMsg = &fotost - - } - - return -} - -func ProcessByName(dbS *db.DB, nameList []string) (message *tgb.MessageConfig) { - ctx := context.Background() - var err error - page := 0 - // look for if the last part of the list is a number - lastItem := nameList[len(nameList)-1] - - if MessageChecker(lastItem) == "digit" && !strings.HasPrefix(lastItem, "0") { - pageInt, err := strconv.Atoi(lastItem) - if err != nil { - fmt.Println(err) - } - nameList = nameList[:len(nameList)-1] - if pageInt < 20 { - page = pageInt - } - } - rows := &info.MultipleResults{} - message = &tgb.MessageConfig{} - text := strings.Join(nameList, " ") - rows, err = info.GetByFTS(ctx, dbS, text, uint(page)) - if err != nil { - message.Text = "no hubo resultados para la busqueda" - return - } - textToSend := fmt.Sprintf(` -Busqueda: - Texto: %s - Pagina: %d - resultados desde: %d A %d -De un total de: %d - -`, - text, - (rows.Page), - (rows.Page*10)-9, (rows.Page)*10, - rows.Total) - for _, v := range rows.Data { - textToSend = textToSend + fmt.Sprintf("\n %s %s %s \n %s-%s-%s\n", strings.ToLower(v.Nombres), strings.ToLower(v.Apellido1), strings.ToLower(v.Apellido2), v.MunCed, v.SeqCed, v.VerCed) - } - message.Text = textToSend - return -} - func MessageChecker(text string) string { // Check is text start with number checkSpace := regexp.MustCompile(`^[\s]+.*`)