add sending to tg for method PutMessage
This commit is contained in:
parent
f9c4e7212a
commit
fe35ebd5f4
@ -142,7 +142,7 @@ func New(ctx context.Context, opts interface{}, ver appInit.Version) (appInit.Co
|
||||
"/delegate": tools.HandlerWrapper(heruvym.Delegate),
|
||||
"/vote": tools.HandlerWrapper(heruvym.Vote),
|
||||
"/close": tools.HandlerWrapper(heruvym.CloseTicket),
|
||||
"/shown": tools.HandlerWrapper(heruvym.SetShown),
|
||||
"/shown": tools.HandlerWrapper(heruvym.SetShown),
|
||||
})
|
||||
|
||||
mw := middleware.NewMiddleware(
|
||||
@ -171,6 +171,7 @@ func New(ctx context.Context, opts interface{}, ver appInit.Version) (appInit.Co
|
||||
mw.MiddlewareGetJwt,
|
||||
//mw.MiddlewareJwtPlug,
|
||||
//mw.MiddlewareRoleAccess,
|
||||
mw.ExtractHostMiddleware,
|
||||
)
|
||||
fmt.Println("mux")
|
||||
server := &http.Server{
|
||||
|
@ -23,6 +23,7 @@ type Middleware struct {
|
||||
}
|
||||
|
||||
const sessionKey = "Sess"
|
||||
const HostKey = "host"
|
||||
|
||||
func NewMiddleware(
|
||||
logger hlog.Logger,
|
||||
@ -112,7 +113,7 @@ func (mw *Middleware) MiddlewareJwt(next http.Handler) http.Handler {
|
||||
ctx := context.WithValue(r.Context(), jwt_adapter.RoleKey, role)
|
||||
|
||||
tokenCookie, err := r.Cookie(jwt_adapter.DefaultHeaderKey)
|
||||
fmt.Println("MW1", err)
|
||||
fmt.Println("MW1", err)
|
||||
if err != nil {
|
||||
// Escape GET requests
|
||||
if r.Method == http.MethodGet {
|
||||
@ -120,25 +121,27 @@ func (mw *Middleware) MiddlewareJwt(next http.Handler) http.Handler {
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println("MW2", jwt_adapter.DefaultHeaderKey, r.Header[jwt_adapter.DefaultHeaderKey])
|
||||
fmt.Println("MW2", jwt_adapter.DefaultHeaderKey, r.Header[jwt_adapter.DefaultHeaderKey])
|
||||
if len(r.Header[jwt_adapter.DefaultHeaderKey]) <= 0 || !func(hdrs []string) bool {
|
||||
if len(hdrs) == 0 {return false}
|
||||
if hdrs[0] == "Bearer" || hdrs[0] == "Bearer " {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}(r.Header[jwt_adapter.DefaultHeaderKey]) {
|
||||
fmt.Println("MW3", r.Header[sessionKey], sessionKey, r.Header)
|
||||
if len(hdrs) == 0 {
|
||||
return false
|
||||
}
|
||||
if hdrs[0] == "Bearer" || hdrs[0] == "Bearer " {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}(r.Header[jwt_adapter.DefaultHeaderKey]) {
|
||||
fmt.Println("MW3", r.Header[sessionKey], sessionKey, r.Header)
|
||||
if len(r.Header[sessionKey]) <= 0 {
|
||||
if sessCookie, err := r.Cookie(sessionKey); err != nil {
|
||||
id := xid.New().String()
|
||||
adapter = &jwt_adapter.JwtAdapter{Id: id}
|
||||
http.SetCookie(w, &http.Cookie{
|
||||
Name: sessionKey,
|
||||
Value: id,
|
||||
Expires: time.Now().Add(time.Hour * 24 * 30),
|
||||
Name: sessionKey,
|
||||
Value: id,
|
||||
Expires: time.Now().Add(time.Hour * 24 * 30),
|
||||
SameSite: http.SameSiteNoneMode,
|
||||
Secure: true,
|
||||
Secure: true,
|
||||
})
|
||||
} else {
|
||||
adapter = &jwt_adapter.JwtAdapter{Id: sessCookie.Value}
|
||||
@ -245,3 +248,11 @@ func (mw *Middleware) MiddlewareJwtPlug(next http.Handler) http.Handler {
|
||||
})
|
||||
}
|
||||
*/
|
||||
|
||||
func (mw *Middleware) ExtractHostMiddleware(next http.Handler) http.Handler {
|
||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
host := r.Host
|
||||
ctx := context.WithValue(r.Context(), HostKey, host)
|
||||
next.ServeHTTP(w, r.WithContext(ctx))
|
||||
})
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import (
|
||||
"heruvym/dal/minio"
|
||||
"heruvym/dal/mongo"
|
||||
"heruvym/jwt_adapter"
|
||||
"heruvym/middleware"
|
||||
"heruvym/model"
|
||||
"heruvym/tools"
|
||||
"net/http"
|
||||
@ -283,10 +284,16 @@ func (h *Heruvym) PutMessage(
|
||||
request ReqPutMessage,
|
||||
) (interface{}, int) {
|
||||
sess := jwt_adapter.Get(ctx)
|
||||
fmt.Println("PUTMES", sess)
|
||||
fmt.Println("PUTMES", sess)
|
||||
|
||||
request.Files = []string{}
|
||||
|
||||
domain := ctx.Value(middleware.HostKey).(string)
|
||||
if domain == "" {
|
||||
fmt.Println("domain is nil err")
|
||||
return errors.New("domain is nil"), http.StatusBadRequest
|
||||
}
|
||||
|
||||
message, err := h.dal.PutMessage(
|
||||
ctx,
|
||||
request.Message,
|
||||
@ -295,37 +302,48 @@ func (h *Heruvym) PutMessage(
|
||||
request.TicketID,
|
||||
[]string{},
|
||||
)
|
||||
fmt.Println("PUTMES00", err)
|
||||
fmt.Println("PUTMES00", err)
|
||||
if err != nil {
|
||||
fmt.Println("PUTMES1", err)
|
||||
return errors.New("can not put message"), http.StatusInternalServerError
|
||||
}
|
||||
|
||||
go func() {
|
||||
/*if sess.Id != "" {
|
||||
if sess.Id != "" {
|
||||
additional, err := h.dal.GetAdditionalData(context.TODO(), sess.Id)
|
||||
fmt.Println("CAN NOT NOTIFY", err)
|
||||
|
||||
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),
|
||||
fmt.Sprintf("Поступило новое сообщение от пользователя %d с почтой %s",
|
||||
additional.Uid, additional.Email)); err != nil {
|
||||
var userLink string
|
||||
if additional.Uid != 0 {
|
||||
if domain == "sadmin.pena" {
|
||||
userLink = fmt.Sprintf("https://sadmin.pena/users/%d", additional.Uid)
|
||||
} else {
|
||||
userLink = fmt.Sprintf("https://admin.pena/users/%d", additional.Uid)
|
||||
}
|
||||
} else {
|
||||
userLink = "незарегистрированного пользователя"
|
||||
}
|
||||
|
||||
message := fmt.Sprintf("Вам пришло сообщение от пользователя %s сссылка на пользователя - %s с %s",
|
||||
additional.Email, userLink, domain)
|
||||
|
||||
if _, err := h.notifier.Send(tb.ChatID(-1001344671794), message); err != nil {
|
||||
fmt.Println("CAN NOT NOTIFY", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
if h.notifier != nil {
|
||||
role := jwt_adapter.GetRole(ctx)
|
||||
|
||||
if role != "admin" && role != "manager" {
|
||||
if _, err := h.notifier.Send(tb.ChatID(-1001802261459),
|
||||
fmt.Sprintf(
|
||||
"Поступило новое сообщение")); err != nil {
|
||||
fmt.Println("CAN NOT NOTIFY", err)
|
||||
}
|
||||
message := "Поступило новое сообщение от незарегистрированного пользователя"
|
||||
|
||||
if _, err := h.notifier.Send(tb.ChatID(-1001802261459), message); err != nil {
|
||||
fmt.Println("CAN NOT NOTIFY", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
@ -335,7 +353,7 @@ func (h *Heruvym) PutMessage(
|
||||
//return errors.New("can not update ticket"), http.StatusInternalServerError
|
||||
}
|
||||
|
||||
fmt.Println("PUTMES03" )
|
||||
fmt.Println("PUTMES03")
|
||||
return nil, http.StatusOK
|
||||
}
|
||||
|
||||
@ -931,9 +949,9 @@ func (h *Heruvym) PutSC(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
type ShownReq struct {
|
||||
ID string `json:"id"`
|
||||
ID string `json:"id"`
|
||||
}
|
||||
|
||||
func (h *Heruvym) SetShown(ctx context.Context, req ShownReq) (error, int) {
|
||||
return h.dal.SetShown(ctx, req.ID, "me"), http.StatusOK
|
||||
return h.dal.SetShown(ctx, req.ID, "me"), http.StatusOK
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user