import regionData from './json/cluster.json'

const mockCluster = (mock: any): void => {
    // Mock API endpoint for getting regions
    mock.onGet('/api/v1/masters/clusters').reply((config: any) => {
        return [200, { data: regionData }]
    })

    mock.onPost('/api/v1/masters/clusters').reply((config: any) => {
        const data = JSON.parse(config.data)
        const newRegion = {
            name: data.name,
            slug: Math.floor(Math.random() * 1000),
            status: 'active'
        }
        regionData.push(newRegion)
        return [200, { message: 'added successfully', data: newRegion }]
    })

    // Mock API endpoint for editing a region
    mock.onPatch('/api/v1/masters/clusters/{id}').reply((config: any) => {
        const data = JSON.parse(config.data)
        const slug = data.slug
        const updatedRolesData = regionData.map((region: any) =>
            region.slug === slug ? { ...region, name: data.name } : region
        )
        return [200, { message: 'Edited successfully', data: updatedRolesData }]
    })

    // Mock API endpoint for deleting a region
    mock.onDelete('/api/v1/masters/clusters/{data.id}').reply((config: any) => {
        const id = config.data.id
        const updatedRegion = regionData.filter((region) => region.slug !== id)
        return [200, { message: 'Deleted successfully', data: updatedRegion }]
    })
}

export { mockCluster }
