Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Danil Solovyov 2023-05-16 23:21:48 +05:00
commit 08e3cc9caa
3 changed files with 30 additions and 13 deletions

@ -11,6 +11,7 @@ import (
"heruvym/service" "heruvym/service"
"heruvym/tools" "heruvym/tools"
"net/http" "net/http"
"time"
"github.com/skeris/appInit" "github.com/skeris/appInit"
tb "gopkg.in/tucnak/telebot.v2" tb "gopkg.in/tucnak/telebot.v2"
@ -126,9 +127,8 @@ func New(ctx context.Context, opts interface{}, ver appInit.Version) (appInit.Co
} }
var newBot *tb.Bot var newBot *tb.Bot
/*if options.LoggerDevMode {
newBot, err = tb.NewBot(tb.Settings{ newBot, err = tb.NewBot(tb.Settings{
Token: "5240336345:AAG6ZXm6IYqsIZn7SoJTltJWviOXhVa4D0c", Token: "5851043588:AAGXhigZAaNV1--n-jfS8eBgM7iZ2IDm668",
Verbose: false, Verbose: false,
ParseMode: tb.ModeHTML, ParseMode: tb.ModeHTML,
Poller: &tb.LongPoller{ Poller: &tb.LongPoller{
@ -139,7 +139,6 @@ func New(ctx context.Context, opts interface{}, ver appInit.Version) (appInit.Co
//logger.Emit(json.Token(err)) //logger.Emit(json.Token(err))
return nil, err return nil, err
} }
}*/
heruvym := service.New(blobStore, database, logger, newBot) heruvym := service.New(blobStore, database, logger, newBot)
@ -168,10 +167,10 @@ func New(ctx context.Context, opts interface{}, ver appInit.Version) (appInit.Co
mux.Use( mux.Use(
func(handler http.Handler) http.Handler { func(handler http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", r.Header["Origin"][0]) // w.Header().Set("Access-Control-Allow-Origin", r.Header["Origin"][0])
w.Header().Set("Access-Control-Allow-Credentials", "true") // w.Header().Set("Access-Control-Allow-Credentials", "true")
w.Header().Set("Access-Control-Allow-Headers", "content-type") // w.Header().Set("Access-Control-Allow-Headers", "content-type")
w.Header().Set("Access-Control-Expose-Headers", "*") // w.Header().Set("Access-Control-Expose-Headers", "*")
if r.Method == http.MethodOptions { if r.Method == http.MethodOptions {
return return
} }

@ -116,6 +116,7 @@ func (mw *Middleware) MiddlewareJwt(next http.Handler) http.Handler {
next.ServeHTTP(w, r.WithContext(ctx)) next.ServeHTTP(w, r.WithContext(ctx))
return return
} }
if len(r.Header[jwt_adapter.DefaultHeaderKey]) <= 0 { if len(r.Header[jwt_adapter.DefaultHeaderKey]) <= 0 {
if len(r.Header[sessionKey]) <= 0 { if len(r.Header[sessionKey]) <= 0 {
if sessCookie, err := r.Cookie(sessionKey); err != nil { if sessCookie, err := r.Cookie(sessionKey); err != nil {
@ -125,6 +126,8 @@ func (mw *Middleware) MiddlewareJwt(next http.Handler) http.Handler {
Name: sessionKey, Name: sessionKey,
Value: id, Value: id,
Expires: time.Now().Add(time.Hour * 24 * 30), Expires: time.Now().Add(time.Hour * 24 * 30),
SameSite: http.SameSiteNoneMode,
Secure: true,
}) })
} else { } else {
adapter = &jwt_adapter.JwtAdapter{Id: sessCookie.Value} adapter = &jwt_adapter.JwtAdapter{Id: sessCookie.Value}

@ -138,6 +138,13 @@ func (h *Heruvym) CreateTicket(w http.ResponseWriter, r *http.Request) {
http.Error(w, "CannotCreateMessage", http.StatusInternalServerError) http.Error(w, "CannotCreateMessage", http.StatusInternalServerError)
return return
} }
if h.notifier != nil {
if _, err := h.notifier.Send(tb.ChatID(-1001802261459),
fmt.Sprintf(
"Поступило новое сообщение")); err != nil {
fmt.Println("CAN NOT NOTIFY", err)
}
}
} else { } else {
ticketID = tickets[0].ID ticketID = tickets[0].ID
} }
@ -276,6 +283,7 @@ func (h *Heruvym) PutMessage(
request ReqPutMessage, request ReqPutMessage,
) (interface{}, int) { ) (interface{}, int) {
sess := jwt_adapter.Get(ctx) sess := jwt_adapter.Get(ctx)
fmt.Println("PUTMES", sess)
request.Files = []string{} request.Files = []string{}
@ -288,15 +296,18 @@ func (h *Heruvym) PutMessage(
[]string{}, []string{},
) )
if err != nil { if err != nil {
fmt.Println("PUTMES1", err)
return errors.New("can not put message"), http.StatusInternalServerError return errors.New("can not put message"), http.StatusInternalServerError
} }
go func() { go func() {
if sess.Id != "" { /*if sess.Id != "" {
additional, err := h.dal.GetAdditionalData(context.TODO(), sess.Id) additional, err := h.dal.GetAdditionalData(context.TODO(), sess.Id)
fmt.Println("CAN NOT NOTIFY", err) fmt.Println("CAN NOT NOTIFY", err)
if err == nil && h.notifier != nil { if err == nil && h.notifier != nil {
additional, err := h.dal.GetAdditionalData(context.TODO(), sess.Id)
fmt.Println("CAN NOT NOTIFY", err)
if _, err := h.notifier.Send(tb.ChatID(-1001344671794), if _, err := h.notifier.Send(tb.ChatID(-1001344671794),
fmt.Sprintf("Поступило новое сообщение от пользователя %d с почтой %s", fmt.Sprintf("Поступило новое сообщение от пользователя %d с почтой %s",
additional.Uid, additional.Email)); err != nil { additional.Uid, additional.Email)); err != nil {
@ -304,13 +315,17 @@ func (h *Heruvym) PutMessage(
} }
return return
} }
} }*/
if h.notifier != nil { if h.notifier != nil {
if _, err := h.notifier.Send(tb.ChatID(-1001344671794), role := jwt_adapter.GetRole(ctx)
if role != "admin" && role != "manager" {
if _, err := h.notifier.Send(tb.ChatID(-1001802261459),
fmt.Sprintf( fmt.Sprintf(
"Поступило новое сообщение от незарегистриованного пользователя")); err != nil { "Поступило новое сообщение")); err != nil {
fmt.Println("CAN NOT NOTIFY", err) fmt.Println("CAN NOT NOTIFY", err)
} }
}
} }
}() }()
@ -442,7 +457,7 @@ func (h *Heruvym) Subscribe(ctx context.Context) chan interface{} {
output <- errors.New("no tickets 4 user") output <- errors.New("no tickets 4 user")
} }
if err := h.dal.YieldMessages(ctx, ticketID, func(message model.Message) error { /*if err := h.dal.YieldMessages(ctx, ticketID, func(message model.Message) error {
output <- message output <- message
//if err := h.dal.SetShown(ctx, message.ID, sess.User); err != nil { //if err := h.dal.SetShown(ctx, message.ID, sess.User); err != nil {
@ -455,7 +470,7 @@ func (h *Heruvym) Subscribe(ctx context.Context) chan interface{} {
}); err != nil { }); err != nil {
fmt.Println("1", err) fmt.Println("1", err)
output <- errors.New("cannot read messages " + err.Error()) output <- errors.New("cannot read messages " + err.Error())
} }*/
if err := h.dal.WatchMessages(ctx, ticketID, if err := h.dal.WatchMessages(ctx, ticketID,
func(message model.Message) error { func(message model.Message) error {