DELETE cedulados code
Some checks failed
dev test / test (push) Successful in 30s
dev test / vulnCheck (push) Successful in 36s
dev test / Ci-Lint (push) Failing after 16s
${{ github.actor }} executed Build Push Prod / build (push) Failing after 38s
${{ github.actor }} executed Build Push Prod / deploy (push) Has been skipped
Some checks failed
dev test / test (push) Successful in 30s
dev test / vulnCheck (push) Successful in 36s
dev test / Ci-Lint (push) Failing after 16s
${{ github.actor }} executed Build Push Prod / build (push) Failing after 38s
${{ github.actor }} executed Build Push Prod / deploy (push) Has been skipped
This commit is contained in:
parent
0d735735ba
commit
5ebdd68f95
@ -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)
|
||||
|
||||
24
go.sum
24
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=
|
||||
|
||||
@ -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]+.*`)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user