import buildersData from './json/builders.json'

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

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

    mock.onPut('/api/v1/builders/').reply(() => {
        return [
            200,
            {
                success: true,
                message: 'Builder updated successfully.'
            }
        ]
    })

    mock.onDelete('/api/v1/builders/:builderId').reply((config: any) => {
        const builderId = parseInt(config.url.split('/').pop(), 10)
        const index = buildersData.findIndex((builder) => builder.id === builderId)
        if (index !== -1) {
            buildersData.splice(index, 1)
            return [200]
        } else {
            return [404, { message: 'Builder not found' }]
        }
    })
}

export { mockBuilders }
