lot of new functionalities
This commit is contained in:
58
servers/web/application/wallets.go
Normal file
58
servers/web/application/wallets.go
Normal file
@@ -0,0 +1,58 @@
|
||||
package application
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strconv"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
func (h *Handler) CreditWalletHTTPHandler() http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
vars := mux.Vars(r)
|
||||
userid := vars["userid"]
|
||||
|
||||
if r.Method != "POST" {
|
||||
http.Error(w, "Method Not Allowed", http.StatusMethodNotAllowed)
|
||||
return
|
||||
}
|
||||
|
||||
r.ParseForm()
|
||||
|
||||
amountStr := r.FormValue("amount")
|
||||
paymentMethod := r.FormValue("payment_method")
|
||||
description := r.FormValue("description")
|
||||
|
||||
amount, err := strconv.ParseFloat(amountStr, 64)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("could not read amount")
|
||||
http.Error(w, "Bad Request", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
if paymentMethod == "" {
|
||||
paymentMethod = "Paiement en espèce (MMS)"
|
||||
}
|
||||
|
||||
err = h.applicationHandler.CreditWallet(r.Context(), userid, amount, paymentMethod, description)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("could not credit wallet")
|
||||
http.Error(w, "Internal Server Error", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
refererURL, err := url.Parse(r.Referer())
|
||||
if err != nil {
|
||||
http.Redirect(w, r, r.Referer(), http.StatusFound)
|
||||
return
|
||||
}
|
||||
|
||||
query := refererURL.Query()
|
||||
query.Set("tab", "wallet")
|
||||
refererURL.RawQuery = query.Encode()
|
||||
|
||||
http.Redirect(w, r, refererURL.String(), http.StatusFound)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user