import customersData from './json/customers.json'

const mockCustomers = (mock: any): void => {
    mock.onGet('/api/v1/customers').reply(() => {
        return [200, { data: customersData }]
    })

    mock.onPost('/api/v1/customers').reply((config: any) => {
        const customersData = JSON.parse(config.data)
        return [200, { message: 'Added successfully', data: customersData }]
    })

    mock.onPatch('/api/v1/customers/\\d+').reply((config: any) => {
        const customersData = JSON.parse(config.data)
        return [200, { message: 'Update successfully', data: customersData }]
    })

    mock.onDelete('/api/v1/customers/:customerId').reply((config: any) => {
        const customerId = parseInt(config.url.split('/').pop(), 10)
        const index = customersData.findIndex((customer) => customer.id === customerId)
        if (index !== -1) {
            customersData.splice(index, 1)
            return [200]
        } else {
            return [404, { message: 'Customers model not found' }]
        }
    })
}

export { mockCustomers }
