samuliasmala / lahjalista

https://lahjalista.vercel.app
3 stars 1 forks source link

16. Luodaan rajapinta henkilölle ja merkkipäivälle #56

Open samuliasmala opened 3 weeks ago

samuliasmala commented 3 weeks ago

Luodaan henkilöiden muokkaukseen samanlaiset rajapinnat kuin lahjoille on. Ei tehdä merkkipäiville omaa rajapintaa, vaan päivitetään ne henkilön kautta. Eli esim.

Jätetään profiilikuva toistaiseksi huomioimatta.

anttiasmala commented 5 days ago

Voisiko GET /api/personsin laittaa palauttamaan myös kaikkien käyttäjien kaikki merkkipäivät, koska jos merkkipäivälle ei tehdä omaa rajapintaa? Eipä tuolle kyllä taida paljoa käyttöä olla. Ehkä jossain tilastollisessa mielessä (jos käyttäjä haluaa nähdä montako merkkipäivää ja käyttäjää on yhteensä lisättynä :smile:)

Esim näin:

async function handleGET(
  req: NextApiRequest,
  res: NextApiResponse,
  userData: User,
) {
  const personsData = await prisma.person.findMany({
    where: {
      userUUID: userData.uuid,
    },
  });

  const anniversariesData = await prisma.anniversary.findMany({
    where: {
      userUUID: userData.uuid,
    },
  });

  const returnableObject = {
    personsData,
    anniversariesData,
  };
  return res.status(200).json(returnableObject);
}

joka palauttaisi seuraavasti

{
  "personsData": [
    {
      "id": 2,
      "uuid": "0dfc761d-637d-4f43-98f9-78eaa6cc0234",
      "name": "John Doe",
      "sendReminders": true,
      "profilePictureUUID": null,
      "userUUID": "87be173d-7d9a-4bd9-99dc-711788ad3876",
      "createdAt": "2024-11-21T10:57:12.054Z",
      "updatedAt": "2024-11-21T10:57:12.054Z"
    },
    {
      "id": 3,
      "uuid": "ef6bec60-cf63-42d9-a3c7-34ff801411e5",
      "name": "John Doe",
      "sendReminders": true,
      "profilePictureUUID": null,
      "userUUID": "87be173d-7d9a-4bd9-99dc-711788ad3876",
      "createdAt": "2024-11-21T11:03:16.672Z",
      "updatedAt": "2024-11-21T11:03:16.672Z"
    }
  ],
  "anniversariesData": []
}

merkkipäivien lisäystä en ole vielä tehnyt, joten siksi anniversariesData array on tyhjä

Lähinnä tämmöinen idea vain :smile:

anttiasmala commented 5 days ago

Sitä ei varmastikaan kannata laittaa ainakaan oletuksena päälle, koska silloin ettii monesti turhaan myös kaikkien personien kaikki merkkipäivät

Mietin että jos laittaisikin jonkinlaisen tarkistuksen, että onko Query parametereissä jokin tietty tieto. Jos on, haetaan myös kaikkien personien kaikki merkkipäivät

Esim. /api/persons?anniversaries=true tai jotain sinnepäin

samuliasmala commented 18 hours ago

Ei kannata lisätä "anniversariesData": [] kenttää. Jos tieto tarvitaan, niin silloin sille kannattaa tehdä oma GET /api/anniversaries rajapinta.