Skip to content

Commit 50aa541

Browse files
authored
Merge pull request #7982 from Turbo87/fix-inviter-column
Fix "Invited by" column
2 parents eb5eaf2 + 548e0b4 commit 50aa541

File tree

6 files changed

+12
-19
lines changed

6 files changed

+12
-19
lines changed

app/components/pending-owner-invite-row.hbs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
</div>
2020
<div>
2121
Invited by:
22-
<LinkTo @route="user" @model={{@invite.invited_by_username}} data-test-inviter-link>
23-
{{@invite.invited_by_username}}
22+
<LinkTo @route="user" @model={{@invite.inviter.login}} data-test-inviter-link>
23+
{{@invite.inviter.login}}
2424
</LinkTo>
2525
</div>
2626
<div local-class="date-column" data-test-date>

app/models/crate-owner-invite.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
import Model, { attr } from '@ember-data/model';
1+
import Model, { attr, belongsTo } from '@ember-data/model';
22

33
export default class CrateOwnerInvite extends Model {
4-
@attr invited_by_username;
54
@attr crate_name;
65
@attr crate_id;
76
@attr('date') created_at;
87
@attr accepted;
8+
@belongsTo('user', { async: false, inverse: null }) invitee;
9+
@belongsTo('user', { async: false, inverse: null }) inviter;
910
}

app/serializers/crate-owner-invite.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,19 @@ import ApplicationSerializer from './application';
33
export default class CrateOwnerInviteSerializer extends ApplicationSerializer {
44
primaryKey = 'crate_id';
55

6-
modelNameFromPayloadKey() {
6+
modelNameFromPayloadKey(payloadKey) {
7+
if (payloadKey === 'users') return 'user';
78
return 'crate-owner-invite';
89
}
910

1011
payloadKeyFromModelName() {
1112
return 'crate_owner_invite';
1213
}
1314

14-
normalizeResponse(store, schema, payload, id, requestType) {
15-
if (payload.users) {
16-
delete payload.users;
17-
}
18-
19-
return super.normalizeResponse(store, schema, payload, id, requestType);
15+
keyForRelationship(key) {
16+
// Ember Data expects e.g. an `inviter` key in the payload, but the backend
17+
// uses `inviter_id` instead. This method makes sure that Ember Data can
18+
// find the correct relationship.
19+
return `${key}_id`;
2020
}
2121
}

mirage/serializers/crate-owner-invitation.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,5 @@ export default BaseSerializer.extend({
3131

3232
hash.invitee_id = Number(hash.invitee_id);
3333
hash.inviter_id = Number(hash.inviter_id);
34-
35-
let inviter = this.schema.users.find(hash.inviter_id);
36-
hash.invited_by_username = inviter.login;
3734
},
3835
});

tests/mirage/me/crate-owner-invitations/list-test.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,13 @@ module('Mirage | GET /api/v1/me/crate_owner_invitations', function (hooks) {
5252
crate_id: Number(nanomsg.id),
5353
crate_name: 'nanomsg',
5454
created_at: '2016-12-24T12:34:56Z',
55-
invited_by_username: 'janed',
5655
invitee_id: Number(user.id),
5756
inviter_id: Number(inviter.id),
5857
},
5958
{
6059
crate_id: Number(ember.id),
6160
crate_name: 'ember-rs',
6261
created_at: '2020-12-31T12:34:56Z',
63-
invited_by_username: 'wycats',
6462
invitee_id: Number(user.id),
6563
inviter_id: Number(inviter2.id),
6664
},

tests/mirage/private/crate-owner-invitations/get-test.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,13 @@ module('Mirage | GET /api/private/crate_owner_invitations', function (hooks) {
4343
crate_id: Number(nanomsg.id),
4444
crate_name: 'nanomsg',
4545
created_at: '2016-12-24T12:34:56Z',
46-
invited_by_username: 'janed',
4746
invitee_id: Number(user.id),
4847
inviter_id: Number(inviter.id),
4948
},
5049
{
5150
crate_id: Number(ember.id),
5251
crate_name: 'ember-rs',
5352
created_at: '2020-12-31T12:34:56Z',
54-
invited_by_username: 'wycats',
5553
invitee_id: Number(user.id),
5654
inviter_id: Number(inviter2.id),
5755
},
@@ -159,7 +157,6 @@ module('Mirage | GET /api/private/crate_owner_invitations', function (hooks) {
159157
crate_id: Number(ember.id),
160158
crate_name: 'ember-rs',
161159
created_at: '2020-12-31T12:34:56Z',
162-
invited_by_username: 'wycats',
163160
invitee_id: Number(user.id),
164161
inviter_id: Number(inviter2.id),
165162
},

0 commit comments

Comments
 (0)