5.4 KiB
5.4 KiB
Hard Delete Hızlı Referans
Tek Komutla Hard Delete
1. Kullanıcı ID ile Hard Delete
# Admin token al ve kullanıcıyı sil
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_BURAYA?hard=true" \
-H "Authorization: Bearer $TOKEN"
USER_ID_BURAYA yerine gerçek UUID'yi yazın.
2. Email ile Bul ve Hard Delete
# Token al
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')
# Email ile kullanıcı bul
USER_ID=$(curl -s -X GET "http://localhost:8080/v1/admin/users/search?q=test@example.com" \
-H "Authorization: Bearer $TOKEN" | jq -r '.users[0].id')
# Hard delete
curl -X DELETE "http://localhost:8080/v1/admin/users/$USER_ID?hard=true" \
-H "Authorization: Bearer $TOKEN"
3. One-Liner (Tek Satırda)
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_BURAYA" -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"
EMAIL_BURAYA yerine silinecek email'i yazın.
API Endpoint'leri
| İşlem | Method | Endpoint | Query Param |
|---|---|---|---|
| Soft Delete | DELETE | /v1/admin/users/{id} |
- |
| Hard Delete | DELETE | /v1/admin/users/{id} |
?hard=true |
| Kullanıcı Ara | GET | /v1/admin/users/search |
?q=email |
| Kullanıcı Listele | GET | /v1/admin/users |
?page=1&limit=10 |
Örnek Yanıtlar
Başarılı Hard Delete
{
"message": "User deleted permanently successfully"
}
Başarılı Soft Delete
{
"message": "User deleted soft successfully"
}
Hata (Kullanıcı Bulunamadı)
{
"error": "Failed to delete user"
}
Hata (Kendi Hesabını Silmeye Çalışma)
{
"error": "Cannot delete your own account"
}
cURL ile POST Örnekleri
Yeni Kullanıcı Oluştur (Hard Delete için)
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')
# Form data ile (avatar ile)
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"
# Yanıt - User ID'yi not edin
# {
# "id": "abc-123-def-456",
# "email": "newuser@test.com",
# ...
# }
# Hard delete
curl -X DELETE "http://localhost:8080/v1/admin/users/abc-123-def-456?hard=true" \
-H "Authorization: Bearer $TOKEN"
Pratik Scriptler
test-hard-delete.sh
#!/bin/bash
# Test kullanıcısı oluştur ve hemen hard delete yap
echo "Creating admin token..."
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 "Creating test user..."
CREATE_RESPONSE=$(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_RESPONSE | jq -r '.id')
echo "Created user: $USER_ID"
echo "Hard deleting user..."
DELETE_RESPONSE=$(curl -s -X DELETE "http://localhost:8080/v1/admin/users/$USER_ID?hard=true" \
-H "Authorization: Bearer $TOKEN")
echo "Result: $DELETE_RESPONSE"
bulk-hard-delete.sh
#!/bin/bash
# Belirli email pattern'e uyan tüm kullanıcıları hard delete yap
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 emailler
SEARCH_QUERY="test"
echo "Searching users with pattern: $SEARCH_QUERY"
USER_IDS=$(curl -s -X GET "http://localhost:8080/v1/admin/users/search?q=$SEARCH_QUERY" \
-H "Authorization: Bearer $TOKEN" | jq -r '.users[].id')
for USER_ID in $USER_IDS; do
echo "Hard deleting: $USER_ID"
curl -s -X DELETE "http://localhost:8080/v1/admin/users/$USER_ID?hard=true" \
-H "Authorization: Bearer $TOKEN" | jq '.'
sleep 0.5 # Rate limiting için
done
echo "Bulk hard delete completed!"
Önemli Notlar
✅ Kullanım Öncesi:
- Admin token'ınızın geçerli olduğundan emin olun
- Silinecek kullanıcının ID'sini doğrulayın
- Soft delete yerine hard delete kullanmak istediğinizden emin olun
⚠️ Dikkat:
- Hard delete GERİ ALINAMAZ
- Kendi hesabınızı silemezsiniz
- Üretim ortamında dikkatli kullanın
- Yedek almadan hard delete yapmayın
🔧 Debug:
# Token geçerli mi kontrol et
curl -X GET http://localhost:8080/v1/auth/validate \
-H "Authorization: Bearer $TOKEN"
# Kullanıcı var mı kontrol et
curl -X GET "http://localhost:8080/v1/admin/users/$USER_ID" \
-H "Authorization: Bearer $TOKEN"