Merge remote-tracking branch 'origin/master'

This commit is contained in:
M_Kececi
2026-04-16 17:46:39 +03:00
parent 307282928c
commit f9728b8a4c
13 changed files with 906 additions and 109 deletions

View File

@@ -29,7 +29,20 @@ func GetProductPricingListHandler(w http.ResponseWriter, r *http.Request) {
ctx, cancel := context.WithTimeout(r.Context(), 180*time.Second)
defer cancel()
rows, err := queries.GetProductPricingList(ctx)
limit := 500
if raw := strings.TrimSpace(r.URL.Query().Get("limit")); raw != "" {
if parsed, err := strconv.Atoi(raw); err == nil && parsed > 0 && parsed <= 10000 {
limit = parsed
}
}
offset := 0
if raw := strings.TrimSpace(r.URL.Query().Get("offset")); raw != "" {
if parsed, err := strconv.Atoi(raw); err == nil && parsed >= 0 && parsed <= 1000000 {
offset = parsed
}
}
rows, err := queries.GetProductPricingList(ctx, limit+1, offset)
if err != nil {
if isPricingTimeoutLike(err, ctx.Err()) {
log.Printf(
@@ -54,16 +67,29 @@ func GetProductPricingListHandler(w http.ResponseWriter, r *http.Request) {
http.Error(w, "Urun fiyatlandirma listesi alinamadi: "+err.Error(), http.StatusInternalServerError)
return
}
hasMore := len(rows) > limit
if hasMore {
rows = rows[:limit]
}
log.Printf(
"[ProductPricing] trace=%s success user=%s id=%d count=%d duration_ms=%d",
"[ProductPricing] trace=%s success user=%s id=%d limit=%d offset=%d count=%d has_more=%t duration_ms=%d",
traceID,
claims.Username,
claims.ID,
limit,
offset,
len(rows),
hasMore,
time.Since(started).Milliseconds(),
)
w.Header().Set("Content-Type", "application/json; charset=utf-8")
if hasMore {
w.Header().Set("X-Has-More", "true")
} else {
w.Header().Set("X-Has-More", "false")
}
_ = json.NewEncoder(w).Encode(rows)
}