Initial commit

This commit is contained in:
root
2025-12-21 09:53:16 -05:00
committed by Sebastian Krupinski
commit a7ccac98a2
43 changed files with 6391 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
/**
* People Manager - Providers Store
*/
import { defineStore } from 'pinia';
import { ref } from 'vue';
import { providerService } from '../services/providerService';
import type {
SourceSelector,
ProviderInterface,
} from '../types';
export const useProvidersStore = defineStore('providersStore', () => {
// State
const providers = ref<Record<string, ProviderInterface>>({});
// Actions
/**
* List all available providers
*
* @returns Promise with provider list keyed by provider ID
*/
async function list(): Promise<Record<string, ProviderInterface>> {
try {
const response = await providerService.list();
console.debug('[People Manager](Store) - Successfully retrieved', Object.keys(response).length, 'providers:', Object.keys(response));
providers.value = response;
return response;
} catch (error: any) {
console.error('[People Manager](Store) - Failed to retrieve providers:', error);
throw error;
}
}
/**
* Check which providers exist/are available
*
* @param sources - Source selector with provider IDs to check
* @returns Promise with provider availability status
*/
async function extant(sources: SourceSelector): Promise<Record<string, boolean>> {
try {
const response = await providerService.extant(sources);
return response;
} catch (error: any) {
console.error('[People Manager](Store) - Failed to check provider existence:', error);
throw error;
}
}
return {
// State
providers,
// Actions
list,
extant,
};
});