import { Page } from "@playwright/test";

export default async function mockGuestsAPI({ page }: { page: Page }): Promise<void> {
  page.route('*/**/api/default/guests', async route => {
    if (route.request().method() === 'GET') {
      const json = [
        {
          "id": "f4a09c28-40ea-4553-90a5-96935a59cac6",
          "status": "tentative",
          "name": "Kristofer Rohan DVM",
          "group": {
            "id": "ee44ffb9-1147-4842-a378-9eaeb0f0871a",
            "name": "Pam's family",
          }
        },
        {
          "id": "bd585c40-0937-4cde-960a-bb23acfd6f18",
          "status": "invited",
          "name": "Olevia Quigley Jr.",
          "group": {
            "id": "c8bda6ca-d8af-4bb8-b2bf-e6ec1c21b1e6",
            "name": "Pam's work",
          }
        },
      ];

      await route.fulfill({ json })
    } else if (route.request().method() === 'POST') {
      const json = {
        "id": "ff58aa2d-643d-4c29-be9c-50e10ae6853c",
        "name": "John Snow",
        "status": "invited",
        "group": {
          "id": "c8bda6ca-d8af-4bb8-b2bf-e6ec1c21b1e6",
          "name": "Pam's work",
        }
      };

      await route.fulfill({ json });
    }
  })

  page.route("*/**/api/default/guests/*", async route => {
    if (route.request().method() === 'PUT') {
      const json = {
        "id": "ff58aa2d-643d-4c29-be9c-50e10ae6853c",
        "name": "John Fire",
        "status": "declined",
        "group": {
          "id": "ee44ffb9-1147-4842-a378-9eaeb0f0871a",
          "name": "Pam's family",
        }
      }
      await route.fulfill({ json });

    } else if (route.request().method() === 'DELETE') {
      const json = {}
      await route.fulfill({ json });
    }
  });
}