Skip to content

Instantly share code, notes, and snippets.

@abbec
Forked from luxzeitlos/adapters.server.js
Last active January 27, 2017 09:56
Show Gist options
  • Save abbec/71c98929c307284c78dae336d6cd040b to your computer and use it in GitHub Desktop.
Save abbec/71c98929c307284c78dae336d6cd040b to your computer and use it in GitHub Desktop.
snapshot belongsTo
import DS from 'ember-data';
export default DS.JSONAPIAdapter.extend({
findRecord (store, type, id, snapshot) {
return {
data: {
id: '1',
type: 'servers',
relationships: {
user: {
data: {
id: '1',
type: 'users'
}
}
}
}
}
},
deleteRecord(store, type, snapshot) {
console.log("delete called for server: " + snapshot.record.get('id'));
let s = snapshot.belongsTo('user', {id: true});
console.log("snapshot.belongsTo('user') returned: " + s);
return null;
}
});
import DS from 'ember-data';
import Ember from 'ember';
export default DS.JSONAPIAdapter.extend({
findRecord (store, type, id, snapshot) {
return new Ember.RSVP.Promise(resolve => {
Ember.run.later(() => resolve({
data: {
id: '1',
type: 'users',
attributes: {
'display-name': 'christian'
}
}
}), 1000);
});
},
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
import Model from "ember-data/model";
import attr from "ember-data/attr";
import { belongsTo, hasMany } from "ember-data/relationships";
export default Model.extend({
user: belongsTo('user'),
});
import Model from "ember-data/model";
import attr from "ember-data/attr";
import { belongsTo, hasMany } from "ember-data/relationships";
export default Model.extend({
displayName: attr('string'),
servers: hasMany('server'),
});
import Ember from 'ember';
export default Ember.Route.extend({
model(param) {
return this.store.find('server', '1');
},
actions: {
deleteServer(serverId) {
let self = this;
this.store.find('server', serverId).then( function(server) {
let userId = server.get('user.id');
self.store.find('user', userId).then( user => {
user.get('servers').then( servers => {
servers.removeObject(server);
server.deleteRecord();
server.get('isDeleted');
server.save();
});
});
});
}
}
});
<h3>Model:</h3>
<p>{{model}}</p>
<h3>Server id:</h3>
<p>{{model.id}}</p>
<h3>User Display name:</h3>
<p>{{model.user.displayName}}</p>
<h3>User id:</h3>
<p>{{model.user.id}}</p>
<h3>Actions</h3>
<button {{action "deleteServer" model.id}}>Delete server</button>
{
"version": "0.10.1",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.js",
"ember": "2.11.0",
"ember-data": "2.11.0",
"ember-template-compiler": "2.11.0"
},
"addons": {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment