mirror of
https://github.com/documize/community.git
synced 2025-07-22 14:49:42 +02:00
Create user model and push user data into store
This commit is contained in:
parent
44716e8b9e
commit
a78a73d552
3 changed files with 71 additions and 9 deletions
44
app/app/models/user.js
Normal file
44
app/app/models/user.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
import Model from 'ember-data/model';
|
||||
import attr from 'ember-data/attr';
|
||||
import Ember from 'ember';
|
||||
// import { belongsTo, hasMany } from 'ember-data/relationships';
|
||||
|
||||
export default Model.extend({
|
||||
firstname: attr('string'),
|
||||
lastname: attr('string'),
|
||||
email: attr('string'),
|
||||
initials: attr('string'),
|
||||
active: attr('boolean', { defaultValue: false }),
|
||||
editor: attr('boolean', { defaultValue: false }),
|
||||
admin: attr('boolean', { defaultValue: false }),
|
||||
accounts: attr(),
|
||||
created: attr(),
|
||||
revised: attr(),
|
||||
|
||||
fullname: Ember.computed('firstname', 'lastname', function () {
|
||||
return `${this.get('firstname')} ${this.get('lastname')}`;
|
||||
}),
|
||||
|
||||
generateInitials() {
|
||||
let first = this.get('firstname').trim();
|
||||
let last = this.get('lastname').trim();
|
||||
this.set('initials', first.substr(0, 1) + last.substr(0, 1));
|
||||
},
|
||||
//
|
||||
// copy() {
|
||||
// let copy = UserModel.create();
|
||||
// copy.id = this.id;
|
||||
// copy.created = this.created;
|
||||
// copy.revised = this.revised;
|
||||
// copy.firstname = this.firstname;
|
||||
// copy.lastname = this.lastname;
|
||||
// copy.email = this.email;
|
||||
// copy.initials = this.initials;
|
||||
// copy.active = this.active;
|
||||
// copy.editor = this.editor;
|
||||
// copy.admin = this.admin;
|
||||
// copy.accounts = this.accounts;
|
||||
//
|
||||
// return copy;
|
||||
// }
|
||||
});
|
11
app/app/serializers/user.js
Normal file
11
app/app/serializers/user.js
Normal file
|
@ -0,0 +1,11 @@
|
|||
import JSONAPISerializer from 'ember-data/serializers/json-api';
|
||||
|
||||
export default JSONAPISerializer.extend({
|
||||
normalize(modelClass, resourceHash) {
|
||||
return {
|
||||
id: resourceHash.id,
|
||||
type: modelClass.modelName,
|
||||
attributes: resourceHash
|
||||
};
|
||||
}
|
||||
});
|
|
@ -10,21 +10,22 @@
|
|||
// https://documize.com
|
||||
|
||||
import Ember from 'ember';
|
||||
import models from '../utils/model';
|
||||
// import models from '../utils/model';
|
||||
|
||||
export default Ember.Service.extend({
|
||||
sessionService: Ember.inject.service('session'),
|
||||
ajax: Ember.inject.service(),
|
||||
store: Ember.inject.service(),
|
||||
|
||||
// Adds a new user.
|
||||
add(user) {
|
||||
|
||||
return this.get('ajax').request(`users`, {
|
||||
type: 'POST',
|
||||
data: JSON.stringify(user),
|
||||
contentType: 'json'
|
||||
}).then(function (response) {
|
||||
return models.UserModel.create(response);
|
||||
}).then((response) => {
|
||||
let user = this.get('store').normalize('user', response);
|
||||
return this.get('store').push({ data: user });
|
||||
});
|
||||
},
|
||||
|
||||
|
@ -35,15 +36,17 @@ export default Ember.Service.extend({
|
|||
return this.get('ajax').request(url, {
|
||||
type: 'GET'
|
||||
}).then((response) => {
|
||||
return models.UserModel.create(response);
|
||||
let user = this.get('store').normalize('user', response);
|
||||
return this.get('store').push({ data: user });
|
||||
});
|
||||
},
|
||||
|
||||
// Returns all users for organization.
|
||||
getAll() {
|
||||
return this.get('ajax').request(`users`).then((response) => {
|
||||
return response.map(function (obj) {
|
||||
return models.UserModel.create(obj);
|
||||
return response.map((obj) => {
|
||||
let user = this.get('store').normalize('user', obj);
|
||||
return this.get('store').push({ data: user });
|
||||
});
|
||||
});
|
||||
},
|
||||
|
@ -56,8 +59,9 @@ export default Ember.Service.extend({
|
|||
method: "GET"
|
||||
}).then((response) => {
|
||||
let data = [];
|
||||
_.each(response, function (obj) {
|
||||
data.pushObject(models.UserModel.create(obj));
|
||||
_.each(response, (obj) => {
|
||||
let user = this.get('store').normalize('user', obj);
|
||||
data.pushObject(this.get('store').push({ data: user }));
|
||||
});
|
||||
|
||||
return data;
|
||||
|
@ -91,6 +95,9 @@ export default Ember.Service.extend({
|
|||
|
||||
return this.get('ajax').request(url, {
|
||||
method: 'DELETE'
|
||||
}).then(() => {
|
||||
let user = this.get('store').peekRecord('user', `${userId}`);
|
||||
return user.deleteRecord();
|
||||
});
|
||||
},
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue