mirror of
				https://github.com/pelican-dev/panel.git
				synced 2025-11-04 15:36:52 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			32 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import http from '@/api/http';
 | 
						|
 | 
						|
export interface ServerDatabase {
 | 
						|
    id: string;
 | 
						|
    name: string;
 | 
						|
    username: string;
 | 
						|
    connectionString: string;
 | 
						|
    allowConnectionsFrom: string;
 | 
						|
    password?: string;
 | 
						|
}
 | 
						|
 | 
						|
export const rawDataToServerDatabase = (data: any): ServerDatabase => ({
 | 
						|
    id: data.id,
 | 
						|
    name: data.name,
 | 
						|
    username: data.username,
 | 
						|
    connectionString: `${data.host.address}:${data.host.port}`,
 | 
						|
    allowConnectionsFrom: data.connections_from,
 | 
						|
    password: data.relationships && data.relationships.password ? data.relationships.password.attributes.password : undefined,
 | 
						|
});
 | 
						|
 | 
						|
export default (uuid: string, includePassword = true): Promise<ServerDatabase[]> => {
 | 
						|
    return new Promise((resolve, reject) => {
 | 
						|
        http.get(`/api/client/servers/${uuid}/databases`, {
 | 
						|
            params: includePassword ? { include: 'password' } : undefined,
 | 
						|
        })
 | 
						|
            .then(response => resolve(
 | 
						|
                (response.data.data || []).map((item: any) => rawDataToServerDatabase(item.attributes))
 | 
						|
            ))
 | 
						|
            .catch(reject);
 | 
						|
    });
 | 
						|
};
 |