change selections to encrypted array
Move selections from embedded model to encrypted array.
This commit is contained in:
parent
d56176dfb2
commit
53f7511940
1 changed files with 13 additions and 41 deletions
|
@ -118,18 +118,12 @@ App.User = DS.Model.extend({
|
|||
poll : DS.belongsTo('poll', {async: true}),
|
||||
encryptedName : DS.attr('string'),
|
||||
name : Ember.computed.encrypted('encryptedName', 'string'),
|
||||
selections : DS.hasMany('selection', {async: true}),
|
||||
encryptedSelections : DS.attr('string'),
|
||||
selections : Ember.computed.encrypted('encryptedSelections', 'array'),
|
||||
encryptedCreationDate : DS.attr('string'),
|
||||
creationDate : Ember.computed.encrypted('encryptedCreationDate', 'date')
|
||||
});
|
||||
|
||||
// selection model
|
||||
// used by user model
|
||||
App.Selection = DS.Model.extend({
|
||||
encryptedValue : DS.attr('string'),
|
||||
value : Ember.computed.encrypted('encryptedValue', 'string')
|
||||
});
|
||||
|
||||
App.Encryption = Ember.Object.extend({
|
||||
key : '',
|
||||
isSet: false
|
||||
|
@ -180,12 +174,6 @@ App.PollSerializer = App.ApplicationSerializer.extend({
|
|||
}
|
||||
});
|
||||
|
||||
App.UserSerializer = App.ApplicationSerializer.extend({
|
||||
attrs: {
|
||||
selections: {embedded: 'always'}
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* routes
|
||||
*/
|
||||
|
@ -372,40 +360,24 @@ App.PollController = Ember.ObjectController.extend({
|
|||
saveNewUser: function(user){
|
||||
var self = this;
|
||||
|
||||
console.log(user);
|
||||
|
||||
// create new user record in store
|
||||
var newUser = this.store.createRecord('user', {
|
||||
name: user.name,
|
||||
creationDate: new Date(),
|
||||
poll: this.get('model')
|
||||
});
|
||||
|
||||
// create new selection record in store and assign it to the new user
|
||||
var newSelections = [];
|
||||
user.selections.forEach(function(selection){
|
||||
// create new selection record in store
|
||||
var newSelection = self.store.createRecord('selection', {
|
||||
value: selection.value
|
||||
});
|
||||
|
||||
// store new selections in an array
|
||||
newSelections.push(newSelection);
|
||||
poll: this.get('model'),
|
||||
selections: user.selections
|
||||
});
|
||||
|
||||
newUser.get('selections').then(function(selections){
|
||||
// map over all new selections and assign them to user
|
||||
$.each(newSelections, function(){
|
||||
selections.pushObject(this);
|
||||
});
|
||||
|
||||
// save new user
|
||||
newUser.save().then(function(){
|
||||
self.get('model.users').then(function(users){
|
||||
// assign new user to poll
|
||||
users.pushObject(newUser);
|
||||
});
|
||||
// reload as workaround for bug: duplicated records after save
|
||||
self.get('model').reload();
|
||||
// save new user
|
||||
newUser.save().then(function(){
|
||||
self.get('model.users').then(function(users){
|
||||
// assign new user to poll
|
||||
users.pushObject(newUser);
|
||||
});
|
||||
// reload as workaround for bug: duplicated records after save
|
||||
self.get('model').reload();
|
||||
});
|
||||
}
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue