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
|
// https://documize.com
|
||||||
|
|
||||||
import Ember from 'ember';
|
import Ember from 'ember';
|
||||||
import models from '../utils/model';
|
// import models from '../utils/model';
|
||||||
|
|
||||||
export default Ember.Service.extend({
|
export default Ember.Service.extend({
|
||||||
sessionService: Ember.inject.service('session'),
|
sessionService: Ember.inject.service('session'),
|
||||||
ajax: Ember.inject.service(),
|
ajax: Ember.inject.service(),
|
||||||
|
store: Ember.inject.service(),
|
||||||
|
|
||||||
// Adds a new user.
|
// Adds a new user.
|
||||||
add(user) {
|
add(user) {
|
||||||
|
|
||||||
return this.get('ajax').request(`users`, {
|
return this.get('ajax').request(`users`, {
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
data: JSON.stringify(user),
|
data: JSON.stringify(user),
|
||||||
contentType: 'json'
|
contentType: 'json'
|
||||||
}).then(function (response) {
|
}).then((response) => {
|
||||||
return models.UserModel.create(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, {
|
return this.get('ajax').request(url, {
|
||||||
type: 'GET'
|
type: 'GET'
|
||||||
}).then((response) => {
|
}).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.
|
// Returns all users for organization.
|
||||||
getAll() {
|
getAll() {
|
||||||
return this.get('ajax').request(`users`).then((response) => {
|
return this.get('ajax').request(`users`).then((response) => {
|
||||||
return response.map(function (obj) {
|
return response.map((obj) => {
|
||||||
return models.UserModel.create(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"
|
method: "GET"
|
||||||
}).then((response) => {
|
}).then((response) => {
|
||||||
let data = [];
|
let data = [];
|
||||||
_.each(response, function (obj) {
|
_.each(response, (obj) => {
|
||||||
data.pushObject(models.UserModel.create(obj));
|
let user = this.get('store').normalize('user', obj);
|
||||||
|
data.pushObject(this.get('store').push({ data: user }));
|
||||||
});
|
});
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
|
@ -91,6 +95,9 @@ export default Ember.Service.extend({
|
||||||
|
|
||||||
return this.get('ajax').request(url, {
|
return this.get('ajax').request(url, {
|
||||||
method: 'DELETE'
|
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