# Username Check API Documentation ## Overview API endpoint untuk mengecek apakah username sudah ada atau belum dalam sistem. Endpoint ini hanya mengembalikan status exist/not exist tanpa mengembalikan data user lengkap. ## Endpoint ### Check Username Exists **GET** `/users/check-username/{username}` #### Description Mengecek apakah username sudah ada dalam sistem atau belum. #### Parameters - **username** (path, required): Username yang akan dicek keberadaannya #### Headers - Tidak memerlukan authentication (public endpoint) #### Response ##### Success Response (200) ```json { "success": true, "messages": ["Username check completed"], "data": { "username": "john_doe", "exists": true } } ``` ##### Response Fields - **username** (string): Username yang dicek - **exists** (boolean): Status apakah username sudah ada (`true`) atau belum (`false`) #### Error Responses ##### 500 Internal Server Error ```json { "success": false, "messages": ["Database error message"] } ``` ## Usage Examples ### cURL Example ```bash # Check if username exists curl -X GET "http://localhost:8080/users/check-username/john_doe" # Response if username exists { "success": true, "messages": ["Username check completed"], "data": { "username": "john_doe", "exists": true } } # Response if username doesn't exist { "success": true, "messages": ["Username check completed"], "data": { "username": "john_doe", "exists": false } } ``` ### JavaScript Example ```javascript const checkUsernameExists = async (username) => { try { const response = await fetch(`/users/check-username/${username}`, { method: 'GET', headers: { 'Content-Type': 'application/json' } }); const data = await response.json(); if (data.success) { return data.data.exists; } else { console.error('Check failed:', data.messages); return null; } } catch (error) { console.error('Error checking username:', error); return null; } }; // Usage const usernameExists = await checkUsernameExists('john_doe'); if (usernameExists === true) { console.log('Username already exists'); } else if (usernameExists === false) { console.log('Username is available'); } else { console.log('Error occurred while checking'); } ``` ### React Hook Example ```javascript import { useState, useEffect } from 'react'; const useUsernameCheck = (username) => { const [exists, setExists] = useState(null); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); useEffect(() => { const checkUsername = async () => { if (!username || username.length < 3) { setExists(null); return; } try { setLoading(true); setError(null); const response = await fetch(`/users/check-username/${username}`); const data = await response.json(); if (data.success) { setExists(data.data.exists); } else { setError(data.messages[0]); } } catch (err) { setError('Failed to check username'); } finally { setLoading(false); } }; // Debounce the check const timeoutId = setTimeout(checkUsername, 500); return () => clearTimeout(timeoutId); }, [username]); return { exists, loading, error }; }; // Usage in component const UsernameInput = () => { const [username, setUsername] = useState(''); const { exists, loading, error } = useUsernameCheck(username); return (