5 Commits

Author SHA1 Message Date
f698891865 sending mail to the prescripteur 2023-02-22 11:50:53 +01:00
193f5dfb6f display_name is functional for unsubscribe data 2023-02-17 14:51:43 +01:00
49de2f22c4 delete consol log 2023-02-15 14:26:10 +01:00
ab8cbf6f73 add visualization off history page 2023-02-15 10:12:58 +01:00
10bde53c5e add 'History' page 2023-02-08 09:36:12 +01:00
3 changed files with 122 additions and 2 deletions

View File

@@ -231,7 +231,8 @@ func (h *ApplicationHandler) AgendaSubscribeEvent(w http.ResponseWriter, r *http
"subscribed_by": map[string]any{ "subscribed_by": map[string]any{
"user": map[string]any{ "user": map[string]any{
"id": current_user_token.Subject, "id": current_user_token.Subject,
"display_name": current_user_claims["display_name"], "display_name": current_user_claims["first_name"].(string) + " " + current_user_claims["last_name"].(string),
"email": current_user_claims["email"].(string),
}, },
"group": map[string]any{ "group": map[string]any{
"id": current_group.ID, "id": current_group.ID,
@@ -338,6 +339,7 @@ func (h *ApplicationHandler) AgendaDeleteSubscribeEvent(w http.ResponseWriter, r
subscribeid := vars["subscribeid"] subscribeid := vars["subscribeid"]
s_b_id := "" s_b_id := ""
s_b_name := "" s_b_name := ""
s_b_email := ""
s_b_group_id := "" s_b_group_id := ""
s_b_group_name := "" s_b_group_name := ""
request := &agenda.GetEventRequest{ request := &agenda.GetEventRequest{
@@ -355,10 +357,12 @@ func (h *ApplicationHandler) AgendaDeleteSubscribeEvent(w http.ResponseWriter, r
if resp.Event.Subscriptions[i].Subscriber == subscribeid { if resp.Event.Subscriptions[i].Subscriber == subscribeid {
subscribed_by_id := resp.Event.Subscriptions[i].Data.Fields["subscribed_by"].GetStructValue().Fields["user"].GetStructValue().Fields["id"].GetStringValue() subscribed_by_id := resp.Event.Subscriptions[i].Data.Fields["subscribed_by"].GetStructValue().Fields["user"].GetStructValue().Fields["id"].GetStringValue()
subscribed_by_name := resp.Event.Subscriptions[i].Data.Fields["subscribed_by"].GetStructValue().Fields["user"].GetStructValue().Fields["display_name"].GetStringValue() subscribed_by_name := resp.Event.Subscriptions[i].Data.Fields["subscribed_by"].GetStructValue().Fields["user"].GetStructValue().Fields["display_name"].GetStringValue()
subscribed_by_email := resp.Event.Subscriptions[i].Data.Fields["subscribed_by"].GetStructValue().Fields["user"].GetStructValue().Fields["email"].GetStringValue()
subscribed_by_group_id := resp.Event.Subscriptions[i].Data.Fields["subscribed_by"].GetStructValue().Fields["group"].GetStructValue().Fields["id"].GetStringValue() subscribed_by_group_id := resp.Event.Subscriptions[i].Data.Fields["subscribed_by"].GetStructValue().Fields["group"].GetStructValue().Fields["id"].GetStringValue()
subscribed_by_group_name := resp.Event.Subscriptions[i].Data.Fields["subscribed_by"].GetStructValue().Fields["group"].GetStructValue().Fields["name"].GetStringValue() subscribed_by_group_name := resp.Event.Subscriptions[i].Data.Fields["subscribed_by"].GetStructValue().Fields["group"].GetStructValue().Fields["name"].GetStringValue()
s_b_id = subscribed_by_id s_b_id = subscribed_by_id
s_b_name = subscribed_by_name s_b_name = subscribed_by_name
s_b_email = subscribed_by_email
s_b_group_id = subscribed_by_group_id s_b_group_id = subscribed_by_group_id
s_b_group_name = subscribed_by_group_name s_b_group_name = subscribed_by_group_name
} }
@@ -383,6 +387,7 @@ func (h *ApplicationHandler) AgendaDeleteSubscribeEvent(w http.ResponseWriter, r
"user": map[string]any{ "user": map[string]any{
"id": s_b_id, "id": s_b_id,
"display_name": s_b_name, "display_name": s_b_name,
"email": s_b_email,
}, },
"group": map[string]any{ "group": map[string]any{
"id": s_b_group_id, "id": s_b_group_id,
@@ -392,7 +397,8 @@ func (h *ApplicationHandler) AgendaDeleteSubscribeEvent(w http.ResponseWriter, r
"unsubscribed_by": map[string]any{ "unsubscribed_by": map[string]any{
"user": map[string]any{ "user": map[string]any{
"id": current_user_token.Subject, "id": current_user_token.Subject,
"display_name": current_user_claims["display_name"], "display_name": current_user_claims["first_name"].(string) + " " + current_user_claims["last_name"].(string),
"email": current_user_claims["email"],
}, },
"group": map[string]any{ "group": map[string]any{
"id": current_group.ID, "id": current_group.ID,
@@ -416,6 +422,15 @@ func (h *ApplicationHandler) AgendaDeleteSubscribeEvent(w http.ResponseWriter, r
Data: datapb, Data: datapb,
} }
data := map[string]any{
"key": r.FormValue("motif"),
"user": current_user_claims["email"],
}
// récupérer l'adresse mail de l'utilisateur qui a créé l'événement
mail := s_b_email;
fmt.Println(mail)
_, err := h.services.GRPC.Agenda.DeleteSubscription(context.TODO(), request) _, err := h.services.GRPC.Agenda.DeleteSubscription(context.TODO(), request)
if err != nil { if err != nil {
@@ -424,6 +439,12 @@ func (h *ApplicationHandler) AgendaDeleteSubscribeEvent(w http.ResponseWriter, r
return return
} }
if err := h.emailing.Send("delete_subscriber.request", mail, data); err != nil {
fmt.Println(err)
w.WriteHeader(http.StatusInternalServerError)
return
}
http.Redirect(w, r, fmt.Sprintf("/app/agenda/%s", eventId), http.StatusFound) http.Redirect(w, r, fmt.Sprintf("/app/agenda/%s", eventId), http.StatusFound)
return return
} }
@@ -432,6 +453,89 @@ func (h *ApplicationHandler) AgendaDeleteSubscribeEvent(w http.ResponseWriter, r
//////////////////////////////////////////////////////// ////////////////////////////////////////////////////////
// /////////////////////History Event////////////////////////
func (h *ApplicationHandler) AgendaHistoryEvent(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
eventId := vars["eventid"]
request := &agenda.GetEventRequest{
Id: eventId,
}
resp, err := h.services.GRPC.Agenda.GetEvent(context.TODO(), request)
if err != nil {
fmt.Println(err)
w.WriteHeader(http.StatusInternalServerError)
return
}
grouprequest := &groupsmanagement.GetGroupRequest{
Id: resp.Event.Owners[0],
}
groupresp, err := h.services.GRPC.GroupsManagement.GetGroup(context.TODO(), grouprequest)
if err != nil {
fmt.Println(err)
w.WriteHeader(http.StatusInternalServerError)
return
}
subscribers := map[string]any{}
accids := []string{}
for _, v := range resp.Event.DeletedSubscription {
accids = append(accids, v.Subscriber)
}
subscriberresp, err := h.services.GRPC.MobilityAccounts.GetAccountsBatch(
context.TODO(),
&mobilityaccounts.GetAccountsBatchRequest{
Accountids: accids,
},
)
if err == nil {
for _, sub := range subscriberresp.Accounts {
subscribers[sub.Id] = sub.ToStorageType()
}
}
g := r.Context().Value(identification.GroupKey)
if g == nil {
fmt.Println(err)
w.WriteHeader(http.StatusInternalServerError)
return
}
group := g.(storage.Group)
accountids := []string{}
for _, m := range group.Members {
if !contains(resp.Event.DeletedSubscription, m) {
accountids = append(accountids, m)
}
}
accountresp, err := h.services.GRPC.MobilityAccounts.GetAccountsBatch(
context.TODO(),
&mobilityaccounts.GetAccountsBatchRequest{
Accountids: accountids,
},
)
accounts := []any{}
if err == nil {
for _, acc := range accountresp.Accounts {
accounts = append(accounts, acc)
}
}
h.Renderer.AgendaHistoryEvent(w, r, resp.Event.ToStorageType(), groupresp.Group.ToStorageType(), subscribers, accounts)
}
/////////////////////////////////////////////////////////
// func contains[V string](s []V, e V) bool { // func contains[V string](s []V, e V) bool {
// for _, a := range s { // for _, a := range s {
// if a == e { // if a == e {

View File

@@ -139,6 +139,7 @@ func main() {
/////////////////////////////////////Delete subscriber/////////////////////////////////////////////// /////////////////////////////////////Delete subscriber///////////////////////////////////////////////
application.HandleFunc("/agenda/{eventid}/{subscribeid}/delete", applicationHandler.AgendaDeleteSubscribeEvent) application.HandleFunc("/agenda/{eventid}/{subscribeid}/delete", applicationHandler.AgendaDeleteSubscribeEvent)
application.HandleFunc("/agenda/{eventid}/history", applicationHandler.AgendaHistoryEvent)
///////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////
fmt.Println("-> HTTP server listening on", address) fmt.Println("-> HTTP server listening on", address)

View File

@@ -51,3 +51,18 @@ func (renderer *Renderer) AgendaDeleteSubscribeEvent(w http.ResponseWriter, r *h
} }
////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////
//////////////////////////History Event//////////////////////////////////
func (renderer *Renderer) AgendaHistoryEvent(w http.ResponseWriter, r *http.Request, event any, group any, subscribers map[string]any, beneficiaries any) {
files := renderer.ThemeConfig.GetStringSlice("views.agenda.history_event.files")
state := NewState(r, renderer.ThemeConfig, agendaMenu)
state.ViewState = map[string]any{
"event": event,
"group": group,
"subscribers": subscribers,
"beneficiaries": beneficiaries,
}
renderer.Render("agenda history event", w, r, files, state)
}
////////////////////////////////////////////////////////////////////////