devour-js / devour-client

Don't just consume your JSON API, Devour it...
https://www.npmjs.com/package/devour-client
ISC License
429 stars 90 forks source link

Updating fails when an object with has a relationship in 'camelCase' #199

Open dcantu96 opened 5 years ago

dcantu96 commented 5 years ago

Im trying to do this

await jsonApi.update("match", {
    id: this.match.id,
    date: date,
    homeTeam: { id: homeTeam.id },
    visitTeam: { id: visitTeam.id },
    tournament: { id: tournament.id }
});

It returns a bad request because homeTeam is serialized to "homeTeam" not "home-team" like it should be.

I tried this with postman and it worked as expected.

{ "data": { "id": 1, "type": "matches", "attributes": { "date": "2019-08-12T11:40:57.747-09:00" }, "relationships": { "home-team": { "data": { "type": "teams", "id": 5 } } } } }

What am I doing wrong? Thanks ❤️

Auspicus commented 5 years ago

@dcantu96 I'm not sure if we're translating camelCase names to kebab-case names automatically anymore since we've run into several issues with that and it's hard to make it consistently perform as expected across all JSON:API implementations. Are you able to do something like:

await jsonApi.update("match", {
    id: this.match.id,
    date: date,
    'home-team': { id: homeTeam.id },
    'visit-team': { id: visitTeam.id },
    tournament: { id: tournament.id }
});