Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -11,9 +11,11 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/gorilla/mux"
|
||||
@@ -210,6 +212,17 @@ func handleUserUpdate(db *sql.DB, w http.ResponseWriter, r *http.Request, userID
|
||||
return
|
||||
}
|
||||
|
||||
payload.Code = strings.TrimSpace(payload.Code)
|
||||
payload.FullName = strings.TrimSpace(payload.FullName)
|
||||
payload.Email = strings.TrimSpace(payload.Email)
|
||||
payload.Mobile = strings.TrimSpace(payload.Mobile)
|
||||
payload.Address = strings.TrimSpace(payload.Address)
|
||||
|
||||
if payload.Code == "" {
|
||||
http.Error(w, "Kullanıcı kodu zorunludur", http.StatusUnprocessableEntity)
|
||||
return
|
||||
}
|
||||
|
||||
tx, err := db.Begin()
|
||||
if err != nil {
|
||||
http.Error(w, "Transaction başlatılamadı", http.StatusInternalServerError)
|
||||
@@ -228,31 +241,81 @@ func handleUserUpdate(db *sql.DB, w http.ResponseWriter, r *http.Request, userID
|
||||
payload.Address,
|
||||
)
|
||||
if err != nil {
|
||||
log.Printf("❌ [UserDetail] UpdateUserHeader failed user_id=%d err=%v payload=%+v", userID, err, payload)
|
||||
http.Error(w, "Header güncellenemedi", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
tx.Exec(`DELETE FROM dfrole_usr WHERE dfusr_id = $1`, userID)
|
||||
if _, err := tx.Exec(`DELETE FROM dfrole_usr WHERE dfusr_id = $1`, userID); err != nil {
|
||||
log.Printf("❌ [UserDetail] delete roles failed user_id=%d err=%v", userID, err)
|
||||
http.Error(w, "Roller temizlenemedi", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
for _, code := range payload.Roles {
|
||||
tx.Exec(queries.InsertUserRole, userID, code)
|
||||
code = strings.TrimSpace(code)
|
||||
if code == "" {
|
||||
continue
|
||||
}
|
||||
if _, err := tx.Exec(queries.InsertUserRole, userID, code); err != nil {
|
||||
log.Printf("❌ [UserDetail] insert role failed user_id=%d role=%q err=%v", userID, code, err)
|
||||
http.Error(w, "Rol eklenemedi", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
tx.Exec(`DELETE FROM dfusr_dprt WHERE dfusr_id = $1`, userID)
|
||||
if _, err := tx.Exec(`DELETE FROM dfusr_dprt WHERE dfusr_id = $1`, userID); err != nil {
|
||||
log.Printf("❌ [UserDetail] delete departments failed user_id=%d err=%v", userID, err)
|
||||
http.Error(w, "Departmanlar temizlenemedi", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
for _, d := range payload.Departments {
|
||||
tx.Exec(queries.InsertUserDepartment, userID, d.Code)
|
||||
code := strings.TrimSpace(d.Code)
|
||||
if code == "" {
|
||||
continue
|
||||
}
|
||||
if _, err := tx.Exec(queries.InsertUserDepartment, userID, code); err != nil {
|
||||
log.Printf("❌ [UserDetail] insert department failed user_id=%d dept=%q err=%v", userID, code, err)
|
||||
http.Error(w, "Departman eklenemedi", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
tx.Exec(`DELETE FROM dfusr_piyasa WHERE dfusr_id = $1`, userID)
|
||||
if _, err := tx.Exec(`DELETE FROM dfusr_piyasa WHERE dfusr_id = $1`, userID); err != nil {
|
||||
log.Printf("❌ [UserDetail] delete piyasalar failed user_id=%d err=%v", userID, err)
|
||||
http.Error(w, "Piyasalar temizlenemedi", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
for _, p := range payload.Piyasalar {
|
||||
tx.Exec(queries.InsertUserPiyasa, userID, p.Code)
|
||||
code := strings.TrimSpace(p.Code)
|
||||
if code == "" {
|
||||
continue
|
||||
}
|
||||
if _, err := tx.Exec(queries.InsertUserPiyasa, userID, code); err != nil {
|
||||
log.Printf("❌ [UserDetail] insert piyasa failed user_id=%d piyasa=%q err=%v", userID, code, err)
|
||||
http.Error(w, "Piyasa eklenemedi", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
tx.Exec(`DELETE FROM dfusr_nebim_user WHERE dfusr_id = $1`, userID)
|
||||
if _, err := tx.Exec(`DELETE FROM dfusr_nebim_user WHERE dfusr_id = $1`, userID); err != nil {
|
||||
log.Printf("❌ [UserDetail] delete nebim users failed user_id=%d err=%v", userID, err)
|
||||
http.Error(w, "Nebim kullanıcıları temizlenemedi", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
for _, n := range payload.NebimUsers {
|
||||
tx.Exec(queries.InsertUserNebim, userID, n.Username)
|
||||
username := strings.TrimSpace(n.Username)
|
||||
if username == "" {
|
||||
continue
|
||||
}
|
||||
if _, err := tx.Exec(queries.InsertUserNebim, userID, username); err != nil {
|
||||
log.Printf("❌ [UserDetail] insert nebim user failed user_id=%d username=%q err=%v", userID, username, err)
|
||||
http.Error(w, "Nebim kullanıcısı eklenemedi", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
if err := tx.Commit(); err != nil {
|
||||
log.Printf("❌ [UserDetail] commit failed user_id=%d err=%v", userID, err)
|
||||
http.Error(w, "Commit başarısız", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user