import { defineStore } from 'pinia'
import { ref } from 'vue'
import * as api from '@/api/index.js'
export const useSynapseTargetsStore = defineStore('synapseTargets', () => {
const targets = ref([])
const loading = ref(false)
const creating = ref(false)
async function fetchTargets() {
loading.value = true
try {
const data = await api.getSynapseTargets()
targets.value = data.items || []
} finally {
loading.value = false
}
}
async function createTarget(tokenRef, secret) {
creating.value = true
try {
const target = await api.createSynapseTarget(tokenRef, secret)
targets.value.unshift({
id: target.id,
token_ref: target.token_ref,
created_at: target.created_at,
})
return target
} finally {
creating.value = false
}
}
async function revokeTarget(id) {
await api.revokeSynapseTarget(id)
targets.value = targets.value.filter(t => t.id !== id)
}
return {
targets,
loading,
creating,
fetchTargets,
createTarget,
revokeTarget,
}
})