|
|
|
@ -105,18 +105,41 @@ export class GroupSyncService {
|
|
|
|
|
throw new Error(`API request failed: ${response.status} ${response.statusText}`);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const data = await response.json();
|
|
|
|
|
console.log(data);
|
|
|
|
|
console.log('ℹ️ API response:', {
|
|
|
|
|
status: data.status,
|
|
|
|
|
message: data.message,
|
|
|
|
|
responseLength: data.response?.length || 0
|
|
|
|
|
});
|
|
|
|
|
const rawResponse = await response.text();
|
|
|
|
|
console.log('ℹ️ Raw API response length:', rawResponse.length);
|
|
|
|
|
|
|
|
|
|
// Parse response which could be either:
|
|
|
|
|
// 1. Direct array of groups: [{group1}, {group2}]
|
|
|
|
|
// 2. Or wrapped response: {status, message, response}
|
|
|
|
|
let groups;
|
|
|
|
|
try {
|
|
|
|
|
const parsed = JSON.parse(rawResponse);
|
|
|
|
|
if (Array.isArray(parsed)) {
|
|
|
|
|
// Case 1: Direct array response
|
|
|
|
|
groups = parsed;
|
|
|
|
|
console.log('ℹ️ Received direct array of', groups.length, 'groups');
|
|
|
|
|
} else if (parsed.response && Array.isArray(parsed.response)) {
|
|
|
|
|
// Case 2: Wrapped response
|
|
|
|
|
if (parsed.status !== 'success') {
|
|
|
|
|
throw new Error(`API error: ${parsed.message || 'Unknown error'}`);
|
|
|
|
|
}
|
|
|
|
|
groups = parsed.response;
|
|
|
|
|
console.log('ℹ️ Received wrapped response with', groups.length, 'groups');
|
|
|
|
|
} else {
|
|
|
|
|
throw new Error('Invalid API response format - expected array or wrapped response');
|
|
|
|
|
}
|
|
|
|
|
} catch (e) {
|
|
|
|
|
console.error('❌ Failed to parse API response:', {
|
|
|
|
|
error: e instanceof Error ? e.message : String(e),
|
|
|
|
|
responseSample: rawResponse.substring(0, 100) + '...'
|
|
|
|
|
});
|
|
|
|
|
throw e;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (data.status !== 'success') {
|
|
|
|
|
throw new Error(`API error: ${data.message || 'Unknown error'}`);
|
|
|
|
|
if (!groups.length) {
|
|
|
|
|
console.warn('⚠️ API returned empty group list');
|
|
|
|
|
}
|
|
|
|
|
return data.response;
|
|
|
|
|
return groups;
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error('❌ Failed to fetch groups:', {
|
|
|
|
|
error: error instanceof Error ? error.message : String(error),
|
|
|
|
|