first commit

This commit is contained in:
Beyhan Oğur
2026-04-26 21:35:24 +03:00
commit bbbf76b184
592 changed files with 246870 additions and 0 deletions

View File

@@ -0,0 +1,260 @@
# API Quick Reference - Hard Delete
## 🎯 En Hızlı Yöntem (Copy-Paste)
### Email ile Kullanıcı Sil
```bash
# 1. Bu değişkenleri değiştir
EMAIL_TO_DELETE="test@example.com"
# 2. Komutu çalıştır (tek satır)
TOKEN=$(curl -s -X POST http://localhost:8080/v1/auth/login -H "Content-Type: application/json" -d '{"email":"admin@gauth.local","password":"Admin@123"}' | jq -r '.access_token') && USER_ID=$(curl -s -X GET "http://localhost:8080/v1/admin/users/search?q=$EMAIL_TO_DELETE" -H "Authorization: Bearer $TOKEN" | jq -r '.users[0].id') && curl -X DELETE "http://localhost:8080/v1/admin/users/$USER_ID?hard=true" -H "Authorization: Bearer $TOKEN" | jq '.'
```
### User ID ile Kullanıcı Sil
```bash
# 1. Bu değişkenleri değiştir
USER_ID_TO_DELETE="6df5465d-b8e6-44d2-970a-f682cb428e80"
# 2. Komutu çalıştır (tek satır)
TOKEN=$(curl -s -X POST http://localhost:8080/v1/auth/login -H "Content-Type: application/json" -d '{"email":"admin@gauth.local","password":"Admin@123"}' | jq -r '.access_token') && curl -X DELETE "http://localhost:8080/v1/admin/users/$USER_ID_TO_DELETE?hard=true" -H "Authorization: Bearer $TOKEN" | jq '.'
```
## 📋 API Endpoints Tablosu
| Endpoint | Method | Auth | Body/Params | Açıklama |
|----------|--------|------|-------------|----------|
| `/v1/auth/login` | POST | ❌ | `{"email":"admin@gauth.local","password":"Admin@123"}` | Admin login |
| `/v1/admin/users/search` | GET | ✅ | `?q=email@test.com` | Email ile kullanıcı ara |
| `/v1/admin/users` | GET | ✅ | `?page=1&limit=10` | Kullanıcıları listele |
| `/v1/admin/users/{id}` | GET | ✅ | - | Kullanıcı detayı |
| `/v1/admin/users/{id}` | DELETE | ✅ | - | Soft delete |
| `/v1/admin/users/{id}?hard=true` | DELETE | ✅ | - | **Hard delete** |
## 📝 POST/PUT İçin Gerekli Veriler
### Yeni Kullanıcı Oluştur
```bash
curl -X POST http://localhost:8080/v1/admin/users \
-H "Authorization: Bearer $TOKEN" \
-F "email=newuser@test.com" \
-F "password=password123" \
-F "user_name=New User" \
-F "email_verified=false" \
-F "roles=user"
```
**Gerekli Alanlar:**
- `email` (string, required) - Email adresi
- `password` (string, required) - Şifre (min 6 karakter)
- `user_name` (string, required) - Kullanıcı adı (min 3 karakter)
- `email_verified` (boolean, optional) - Email doğrulandı mı? (default: false)
- `roles` (string, optional) - Roller (virgülle ayrılmış: "admin,user")
- `avatar` (file, optional) - Profil resmi
### Kullanıcı Güncelle
```bash
curl -X PUT http://localhost:8080/v1/admin/users/{user_id} \
-H "Authorization: Bearer $TOKEN" \
-F "email=updated@test.com" \
-F "user_name=Updated Name" \
-F "email_verified=true" \
-F "is_active=true" \
-F "roles=admin,user"
```
**Güncellenebilir Alanlar:**
- `email` (string, optional)
- `user_name` (string, optional)
- `email_verified` (boolean, optional)
- `is_active` (boolean, optional)
- `roles` (string, optional)
- `avatar` (file, optional)
### Rol Ata/Kaldır
```bash
# Rol ata
curl -X POST http://localhost:8080/v1/admin/users/{user_id}/roles \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"roles": ["admin", "user"]}'
# Rol kaldır
curl -X DELETE http://localhost:8080/v1/admin/users/{user_id}/roles/admin \
-H "Authorization: Bearer $TOKEN"
```
## 🔄 Tam İş Akışı Örnekleri
### Örnek 1: Kullanıcı Oluştur → Kontrol Et → Hard Delete
```bash
#!/bin/bash
set -e
echo "📝 Step 1: Admin Login"
TOKEN=$(curl -s -X POST http://localhost:8080/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"admin@gauth.local","password":"Admin@123"}' | jq -r '.access_token')
echo "✅ Token: ${TOKEN:0:30}..."
echo ""
echo "📝 Step 2: Create Test User"
CREATE_RESULT=$(curl -s -X POST http://localhost:8080/v1/admin/users \
-H "Authorization: Bearer $TOKEN" \
-F "email=temp@test.com" \
-F "password=temp123" \
-F "user_name=Temp User" \
-F "email_verified=false" \
-F "roles=user")
USER_ID=$(echo $CREATE_RESULT | jq -r '.id')
echo "✅ Created User ID: $USER_ID"
echo ""
echo "📝 Step 3: Verify User Exists"
GET_RESULT=$(curl -s -X GET "http://localhost:8080/v1/admin/users/$USER_ID" \
-H "Authorization: Bearer $TOKEN")
echo "✅ User: $(echo $GET_RESULT | jq -r '.email')"
echo ""
echo "📝 Step 4: Hard Delete User"
DELETE_RESULT=$(curl -s -X DELETE "http://localhost:8080/v1/admin/users/$USER_ID?hard=true" \
-H "Authorization: Bearer $TOKEN")
echo "$DELETE_RESULT"
echo ""
echo "📝 Step 5: Verify User Deleted"
VERIFY=$(curl -s -X GET "http://localhost:8080/v1/admin/users/$USER_ID" \
-H "Authorization: Bearer $TOKEN")
if echo $VERIFY | grep -q "error"; then
echo "✅ User successfully deleted (not found)"
else
echo "❌ User still exists!"
fi
```
### Örnek 2: Toplu Test Kullanıcıları Temizleme
```bash
#!/bin/bash
echo "🧹 Cleaning test users..."
TOKEN=$(curl -s -X POST http://localhost:8080/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"admin@gauth.local","password":"Admin@123"}' | jq -r '.access_token')
# "test" içeren tüm kullanıcıları bul
USERS=$(curl -s -X GET "http://localhost:8080/v1/admin/users/search?q=test" \
-H "Authorization: Bearer $TOKEN")
# Her kullanıcıyı hard delete yap
echo "$USERS" | jq -r '.users[] | .id' | while read USER_ID; do
EMAIL=$(echo "$USERS" | jq -r ".users[] | select(.id==\"$USER_ID\") | .email")
echo "Deleting: $EMAIL ($USER_ID)"
curl -s -X DELETE "http://localhost:8080/v1/admin/users/$USER_ID?hard=true" \
-H "Authorization: Bearer $TOKEN" | jq '.'
sleep 0.2 # Rate limiting
done
echo "✅ Cleanup completed!"
```
## 💾 JSON Response Örnekleri
### Başarılı Hard Delete
```json
{
"message": "User deleted permanently successfully"
}
```
### Başarılı Soft Delete
```json
{
"message": "User deleted soft successfully"
}
```
### Kullanıcı Arama Sonucu
```json
{
"users": [
{
"id": "abc-123",
"username": "testuser",
"email": "test@example.com",
"email_verified": false,
"created_at": "2026-02-04T20:00:00Z"
}
]
}
```
### Kullanıcı Detay
```json
{
"id": "abc-123",
"username": "testuser",
"email": "test@example.com",
"avatar": "",
"email_verified": false,
"created_at": "2026-02-04T20:00:00Z",
"updated_at": "2026-02-04T20:00:00Z",
"roles": [
{
"id": 2,
"name": "user",
"description": "Default user role",
"permissions": [
{
"name": "user:read"
}
]
}
]
}
```
## ⚠️ Önemli Hatırlatmalar
| ❌ YAPMAYIN | ✅ YAPIN |
|------------|---------|
| Üretimde hard delete kullanmadan test etmeden | Önce test ortamında deneyin |
| Token'ı kodda hard-code etmeyin | Environment variable kullanın |
| Kendi admin hesabınızı silmeye çalışmayın | Başka admin oluşturun |
| Yedek almadan toplu silme | Önce yedek alın |
## 🔧 Troubleshooting
### Token hatası alıyorsam?
```bash
# Token'ı kontrol et
curl -X GET http://localhost:8080/v1/auth/validate \
-H "Authorization: Bearer $TOKEN"
```
### Kullanıcı bulunamıyor?
```bash
# Search ile kontrol et
curl -X GET "http://localhost:8080/v1/admin/users/search?q=email@test.com" \
-H "Authorization: Bearer $TOKEN" | jq '.'
```
### Hard delete çalışmıyor?
```bash
# Önce soft delete dene
curl -X DELETE "http://localhost:8080/v1/admin/users/$USER_ID" \
-H "Authorization: Bearer $TOKEN"
# Sonra hard=true ile tekrar dene
curl -X DELETE "http://localhost:8080/v1/admin/users/$USER_ID?hard=true" \
-H "Authorization: Bearer $TOKEN"
```