Browse Source

refactor: implement new tenant-management proxies

pull/5391/head
mehmet-erim 6 years ago
parent
commit
a195f0e3d3
  1. 13
      npm/ng-packs/packages/tenant-management/src/lib/actions/tenant-management.actions.ts
  2. 11
      npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts
  3. 22
      npm/ng-packs/packages/tenant-management/src/lib/models/tenant-management.ts
  4. 3
      npm/ng-packs/packages/tenant-management/src/lib/services/tenant-management.service.ts
  5. 19
      npm/ng-packs/packages/tenant-management/src/lib/states/tenant-management.state.ts

13
npm/ng-packs/packages/tenant-management/src/lib/actions/tenant-management.actions.ts

@ -1,9 +1,12 @@
import { TenantManagement } from '../models/tenant-management'; import {
import { ABP } from '@abp/ng.core'; GetTenantsInput,
TenantCreateDto,
TenantUpdateDto,
} from '../proxy/tenant-management/models';
export class GetTenants { export class GetTenants {
static readonly type = '[TenantManagement] Get Tenant'; static readonly type = '[TenantManagement] Get Tenant';
constructor(public payload?: ABP.PageQueryParams) {} constructor(public payload?: GetTenantsInput) {}
} }
export class GetTenantById { export class GetTenantById {
@ -13,12 +16,12 @@ export class GetTenantById {
export class CreateTenant { export class CreateTenant {
static readonly type = '[TenantManagement] Create Tenant'; static readonly type = '[TenantManagement] Create Tenant';
constructor(public payload: TenantManagement.AddRequest) {} constructor(public payload: TenantCreateDto) {}
} }
export class UpdateTenant { export class UpdateTenant {
static readonly type = '[TenantManagement] Update Tenant'; static readonly type = '[TenantManagement] Update Tenant';
constructor(public payload: TenantManagement.UpdateRequest) {} constructor(public payload: TenantUpdateDto & { id: string }) {}
} }
export class DeleteTenant { export class DeleteTenant {

11
npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts

@ -1,4 +1,4 @@
import { ABP, ListService } from '@abp/ng.core'; import { ABP, ListService, PagedResultDto } from '@abp/ng.core';
import { eFeatureManagementComponents } from '@abp/ng.feature-management'; import { eFeatureManagementComponents } from '@abp/ng.feature-management';
import { Confirmation, ConfirmationService, getPasswordValidators } from '@abp/ng.theme.shared'; import { Confirmation, ConfirmationService, getPasswordValidators } from '@abp/ng.theme.shared';
import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core'; import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
@ -13,6 +13,7 @@ import {
GetTenants, GetTenants,
UpdateTenant, UpdateTenant,
} from '../../actions/tenant-management.actions'; } from '../../actions/tenant-management.actions';
import { GetTenantsInput, TenantDto } from '../../proxy/tenant-management/models';
import { TenantManagementService } from '../../services/tenant-management.service'; import { TenantManagementService } from '../../services/tenant-management.service';
import { TenantManagementState } from '../../states/tenant-management.state'; import { TenantManagementState } from '../../states/tenant-management.state';
@ -29,12 +30,12 @@ interface SelectedModalContent {
}) })
export class TenantsComponent implements OnInit { export class TenantsComponent implements OnInit {
@Select(TenantManagementState.get) @Select(TenantManagementState.get)
data$: Observable<ABP.BasicItem[]>; data$: Observable<PagedResultDto<TenantDto>>;
@Select(TenantManagementState.getTenantsTotalCount) @Select(TenantManagementState.getTenantsTotalCount)
totalCount$: Observable<number>; totalCount$: Observable<number>;
selected: ABP.BasicItem; selected: TenantDto;
tenantForm: FormGroup; tenantForm: FormGroup;
@ -99,7 +100,7 @@ export class TenantsComponent implements OnInit {
}; };
constructor( constructor(
public readonly list: ListService, public readonly list: ListService<GetTenantsInput>,
private confirmationService: ConfirmationService, private confirmationService: ConfirmationService,
private tenantService: TenantManagementService, private tenantService: TenantManagementService,
private fb: FormBuilder, private fb: FormBuilder,
@ -165,7 +166,7 @@ export class TenantsComponent implements OnInit {
} }
addTenant() { addTenant() {
this.selected = {} as ABP.BasicItem; this.selected = {} as TenantDto;
this.createTenantForm(); this.createTenantForm();
this.openModal('AbpTenantManagement::NewTenant', this.tenantModalTemplate, 'saveTenant'); this.openModal('AbpTenantManagement::NewTenant', this.tenantModalTemplate, 'saveTenant');
} }

22
npm/ng-packs/packages/tenant-management/src/lib/models/tenant-management.ts

@ -1,29 +1,45 @@
import { ABP } from '@abp/ng.core'; import { ABP, PagedResultDto } from '@abp/ng.core';
import { TenantDto } from '../proxy/tenant-management/models';
export namespace TenantManagement { export namespace TenantManagement {
export interface State { export interface State {
result: Response; result: PagedResultDto<TenantDto>;
selectedItem: Item; selectedItem: TenantDto;
} }
/**
* @deprecated To be deleted in v4.0
*/
export type Response = ABP.PagedResponse<Item>; export type Response = ABP.PagedResponse<Item>;
/**
* @deprecated To be deleted in v4.0
*/
export interface Item { export interface Item {
id: string; id: string;
name: string; name: string;
} }
/**
* @deprecated To be deleted in v4.0
*/
export interface AddRequest { export interface AddRequest {
adminEmailAddress: string; adminEmailAddress: string;
adminPassword: string; adminPassword: string;
name: string; name: string;
} }
/**
* @deprecated To be deleted in v4.0
*/
export interface UpdateRequest { export interface UpdateRequest {
id: string; id: string;
name: string; name: string;
} }
/**
* @deprecated To be deleted in v4.0
*/
export interface DefaultConnectionStringRequest { export interface DefaultConnectionStringRequest {
id: string; id: string;
defaultConnectionString: string; defaultConnectionString: string;

3
npm/ng-packs/packages/tenant-management/src/lib/services/tenant-management.service.ts

@ -6,6 +6,9 @@ import { TenantManagement } from '../models/tenant-management';
@Injectable({ @Injectable({
providedIn: 'root', providedIn: 'root',
}) })
/**
* @deprecated Use TenantService instead. To be deleted in v4.0.
*/
export class TenantManagementService { export class TenantManagementService {
apiName = 'AbpTenantManagement'; apiName = 'AbpTenantManagement';

19
npm/ng-packs/packages/tenant-management/src/lib/states/tenant-management.state.ts

@ -1,4 +1,4 @@
import { ABP } from '@abp/ng.core'; import { ABP, PagedResultDto } from '@abp/ng.core';
import { Action, Selector, State, StateContext } from '@ngxs/store'; import { Action, Selector, State, StateContext } from '@ngxs/store';
import { tap } from 'rxjs/operators'; import { tap } from 'rxjs/operators';
import { import {
@ -9,8 +9,9 @@ import {
UpdateTenant, UpdateTenant,
} from '../actions/tenant-management.actions'; } from '../actions/tenant-management.actions';
import { TenantManagement } from '../models/tenant-management'; import { TenantManagement } from '../models/tenant-management';
import { TenantManagementService } from '../services/tenant-management.service';
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { TenantService } from '../proxy/tenant-management/tenant.service';
import { TenantDto } from '../proxy/tenant-management/models';
@State<TenantManagement.State>({ @State<TenantManagement.State>({
name: 'TenantManagementState', name: 'TenantManagementState',
@ -19,7 +20,7 @@ import { Injectable } from '@angular/core';
@Injectable() @Injectable()
export class TenantManagementState { export class TenantManagementState {
@Selector() @Selector()
static get({ result }: TenantManagement.State): ABP.BasicItem[] { static get({ result }: TenantManagement.State): TenantDto[] {
return result.items || []; return result.items || [];
} }
@ -28,11 +29,11 @@ export class TenantManagementState {
return result.totalCount; return result.totalCount;
} }
constructor(private tenantManagementService: TenantManagementService) {} constructor(private service: TenantService) {}
@Action(GetTenants) @Action(GetTenants)
get({ patchState }: StateContext<TenantManagement.State>, { payload }: GetTenants) { get({ patchState }: StateContext<TenantManagement.State>, { payload }: GetTenants) {
return this.tenantManagementService.getTenant(payload).pipe( return this.service.getList(payload).pipe(
tap(result => tap(result =>
patchState({ patchState({
result, result,
@ -43,7 +44,7 @@ export class TenantManagementState {
@Action(GetTenantById) @Action(GetTenantById)
getById({ patchState }: StateContext<TenantManagement.State>, { payload }: GetTenantById) { getById({ patchState }: StateContext<TenantManagement.State>, { payload }: GetTenantById) {
return this.tenantManagementService.getTenantById(payload).pipe( return this.service.get(payload).pipe(
tap(selectedItem => tap(selectedItem =>
patchState({ patchState({
selectedItem, selectedItem,
@ -54,16 +55,16 @@ export class TenantManagementState {
@Action(DeleteTenant) @Action(DeleteTenant)
delete(_, { payload }: DeleteTenant) { delete(_, { payload }: DeleteTenant) {
return this.tenantManagementService.deleteTenant(payload); return this.service.delete(payload);
} }
@Action(CreateTenant) @Action(CreateTenant)
add(_, { payload }: CreateTenant) { add(_, { payload }: CreateTenant) {
return this.tenantManagementService.createTenant(payload); return this.service.create(payload);
} }
@Action(UpdateTenant) @Action(UpdateTenant)
update({ getState }: StateContext<TenantManagement.State>, { payload }: UpdateTenant) { update({ getState }: StateContext<TenantManagement.State>, { payload }: UpdateTenant) {
return this.tenantManagementService.updateTenant({ ...getState().selectedItem, ...payload }); return this.service.update(payload.id, { ...getState().selectedItem, ...payload });
} }
} }

Loading…
Cancel
Save