hino / app / routes / choose-dealer / index.js
index.js
Raw
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';

export default Route.extend(AuthenticatedRouteMixin, {
	userAliasData: service(),
	userAliasDetailData: service(),
	userManagementData: service(),
	session: service(),
	sessionAccount: service(),
	router: service(),
	async beforeModel() {
		return this.sessionAccount.loadCurrentUser();
    },
	init() {
		this._super(...arguments);
	},
	async model() {
		let currentUser = this.sessionAccount.currentUser;
		
		if (currentUser == null || currentUser == undefined) {
			this.router.transitionTo("login");
		}

		let filter = "{\"userManagement\" : {\"eq\" : \"" + currentUser.id + "\"} }";
		filter = JSON.parse(filter);
		let result = await this.userAliasData.getList({
			filter: filter,
			include: "user-management,user-alias-details"
		}); 
		
		if (result == null || result == undefined) {
			this.router.transitionTo("home.index");
		}
		
		if (result.length <= 0) {
			this.router.transitionTo("home.index");
		}

		let userAlias = result.get("firstObject");
		this.userAliasData.getData(userAlias.id, { include: "user-management,user-alias-details" }).then(async response => {
			await this.userAliasDetailData.getList({include: 'user-management', filter:{"userAlias" : { "eq" : response.id}}}).then(responseDetail => {
				responseDetail.forEach(itemDetail => {
					itemDetail.get("userManagement").then(async itemUser => {
						if (itemUser != null) {
							let responseUser = await this.userManagementData.getData(itemUser.id, {include: "dealer"});
							itemDetail.set("userManagement", responseUser);
						}
					});
				});
			});
		});
		return userAlias;
	},

});