Browse Source

Remove old/dead code.

pull/282/head
Sebastian Stehle 8 years ago
parent
commit
eafe2c1109
  1. 4
      src/Squidex/app/features/settings/pages/contributors/contributors-page.component.ts
  2. 4
      src/Squidex/app/shared/components/pipes.ts
  3. 55
      src/Squidex/app/shared/services/rules.service.spec.ts
  4. 52
      src/Squidex/app/shared/services/rules.service.ts
  5. 20
      src/Squidex/app/shared/services/users-provider.service.spec.ts
  6. 10
      src/Squidex/app/shared/services/users-provider.service.ts
  7. 229
      src/Squidex/app/shared/services/users.service.spec.ts
  8. 136
      src/Squidex/app/shared/services/users.service.ts

4
src/Squidex/app/features/settings/pages/contributors/contributors-page.component.ts

@ -15,7 +15,7 @@ import {
AssignContributorForm,
AutocompleteSource,
ContributorsState,
PublicUserDto,
UserDto,
UsersService
} from '@app/shared';
@ -85,7 +85,7 @@ export class ContributorsPageComponent implements OnInit {
if (value) {
let user = value.user;
if (user instanceof PublicUserDto) {
if (user instanceof UserDto) {
user = user.id;
}

4
src/Squidex/app/shared/components/pipes.ts

@ -11,7 +11,7 @@ import { Observable, Subscription } from 'rxjs';
import {
ApiUrlConfig,
MathHelper,
PublicUserDto,
UserDto,
UsersProviderService
} from '@app/shared/internal';
@ -101,7 +101,7 @@ export class UserDtoPicture implements PipeTransform {
) {
}
public transform(user: PublicUserDto): string | null {
public transform(user: UserDto): string | null {
return this.apiUrl.buildUrl(`api/users/${user.id}/picture`);
}
}

55
src/Squidex/app/shared/services/rules.service.spec.ts

@ -22,61 +22,6 @@ import {
Version
} from './../';
describe('RuleDto', () => {
const creation = DateTime.today();
const creator = 'not-me';
const modified = DateTime.now();
const modifier = 'me';
const version = new Version('1');
const newVersion = new Version('2');
it('should update trigger', () => {
const trigger = { param2: 2, triggerType: 'NewType' };
const rule_1 = new RuleDto('id1', creator, creator, creation, creation, version, true, {}, 'contentChanged', {}, 'webhook');
const rule_2 = rule_1.updateTrigger(trigger, modifier, newVersion, modified);
expect(rule_2.trigger).toEqual(trigger);
expect(rule_2.triggerType).toEqual(trigger.triggerType);
expect(rule_2.lastModified).toEqual(modified);
expect(rule_2.lastModifiedBy).toEqual(modifier);
expect(rule_2.version).toEqual(newVersion);
});
it('should update action', () => {
const action = { param2: 2, actionType: 'NewType' };
const rule_1 = new RuleDto('id1', creator, creator, creation, creation, version, true, {}, 'contentChanged', {}, 'webhook');
const rule_2 = rule_1.updateAction(action, modifier, newVersion, modified);
expect(rule_2.action).toEqual(action);
expect(rule_2.actionType).toEqual(action.actionType);
expect(rule_2.lastModified).toEqual(modified);
expect(rule_2.lastModifiedBy).toEqual(modifier);
expect(rule_2.version).toEqual(newVersion);
});
it('should enable', () => {
const rule_1 = new RuleDto('id1', creator, creator, creation, creation, version, true, {}, 'contentChanged', {}, 'webhook');
const rule_2 = rule_1.enable(modifier, newVersion, modified);
expect(rule_2.isEnabled).toBeTruthy();
expect(rule_2.lastModified).toEqual(modified);
expect(rule_2.lastModifiedBy).toEqual(modifier);
expect(rule_2.version).toEqual(newVersion);
});
it('should disable', () => {
const rule_1 = new RuleDto('id1', creator, creator, creation, creation, version, true, {}, 'contentChanged', {}, 'webhook');
const rule_2 = rule_1.disable(modifier, newVersion, modified);
expect(rule_2.isEnabled).toBeFalsy();
expect(rule_2.lastModified).toEqual(modified);
expect(rule_2.lastModifiedBy).toEqual(modifier);
expect(rule_2.version).toEqual(newVersion);
});
});
describe('RulesService', () => {
const now = DateTime.now();
const user = 'me';

52
src/Squidex/app/shared/services/rules.service.ts

@ -65,58 +65,6 @@ export class RuleDto {
public readonly actionType: string
) {
}
public updateTrigger(trigger: any, user: string, version: Version, now?: DateTime): RuleDto {
return new RuleDto(
this.id,
this.createdBy, user,
this.created, now || DateTime.now(),
version,
this.isEnabled,
trigger,
trigger.triggerType,
this.action,
this.action.actionType);
}
public updateAction(action: any, user: string, version: Version, now?: DateTime): RuleDto {
return new RuleDto(
this.id,
this.createdBy, user,
this.created, now || DateTime.now(),
version,
this.isEnabled,
this.trigger,
this.trigger.triggerType,
action,
action.actionType);
}
public enable(user: string, version: Version, now?: DateTime): RuleDto {
return new RuleDto(
this.id,
this.createdBy, user,
this.created, now || DateTime.now(),
version,
true,
this.trigger,
this.triggerType,
this.action,
this.actionType);
}
public disable(user: string, version: Version, now?: DateTime): RuleDto {
return new RuleDto(
this.id,
this.createdBy, user,
this.created, now || DateTime.now(),
version,
false,
this.trigger,
this.triggerType,
this.action,
this.actionType);
}
}
export class RuleEventDto {

20
src/Squidex/app/shared/services/users-provider.service.spec.ts

@ -11,7 +11,7 @@ import { IMock, Mock, Times } from 'typemoq';
import {
AuthService,
Profile,
PublicUserDto,
UserDto,
UsersProviderService,
UsersService
} from './../';
@ -28,12 +28,12 @@ describe('UsersProviderService', () => {
});
it('should return users service when user not cached', () => {
const user = new PublicUserDto('123', 'User1');
const user = new UserDto('123', 'User1');
usersService.setup(x => x.getUser('123'))
.returns(() => Observable.of(user)).verifiable(Times.once());
let resultingUser: PublicUserDto | null = null;
let resultingUser: UserDto | null = null;
usersProviderService.getUser('123').subscribe(result => {
resultingUser = result;
@ -45,14 +45,14 @@ describe('UsersProviderService', () => {
});
it('should return provide user from cache', () => {
const user = new PublicUserDto('123', 'User1');
const user = new UserDto('123', 'User1');
usersService.setup(x => x.getUser('123'))
.returns(() => Observable.of(user)).verifiable(Times.once());
usersProviderService.getUser('123');
let resultingUser: PublicUserDto | null = null;
let resultingUser: UserDto | null = null;
usersProviderService.getUser('123').subscribe(result => {
resultingUser = result;
@ -64,7 +64,7 @@ describe('UsersProviderService', () => {
});
it('should return me when user is current user', () => {
const user = new PublicUserDto('123', 'User1');
const user = new UserDto('123', 'User1');
authService.setup(x => x.user)
.returns(() => new Profile(<any>{ profile: { sub: '123'}}));
@ -72,13 +72,13 @@ describe('UsersProviderService', () => {
usersService.setup(x => x.getUser('123'))
.returns(() => Observable.of(user)).verifiable(Times.once());
let resultingUser: PublicUserDto | null = null;
let resultingUser: UserDto | null = null;
usersProviderService.getUser('123').subscribe(result => {
resultingUser = result;
}).unsubscribe();
expect(resultingUser).toEqual(new PublicUserDto('123', 'Me'));
expect(resultingUser).toEqual(new UserDto('123', 'Me'));
usersService.verifyAll();
});
@ -90,13 +90,13 @@ describe('UsersProviderService', () => {
usersService.setup(x => x.getUser('123'))
.returns(() => Observable.throw('NOT FOUND')).verifiable(Times.once());
let resultingUser: PublicUserDto | null = null;
let resultingUser: UserDto | null = null;
usersProviderService.getUser('123').subscribe(result => {
resultingUser = result;
}).unsubscribe();
expect(resultingUser).toEqual(new PublicUserDto('Unknown', 'Unknown'));
expect(resultingUser).toEqual(new UserDto('Unknown', 'Unknown'));
usersService.verifyAll();
});

10
src/Squidex/app/shared/services/users-provider.service.ts

@ -8,13 +8,13 @@
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { PublicUserDto, UsersService } from './users.service';
import { UserDto, UsersService } from './users.service';
import { AuthService } from './auth.service';
@Injectable()
export class UsersProviderService {
private readonly caches: { [id: string]: Observable<PublicUserDto> } = {};
private readonly caches: { [id: string]: Observable<UserDto> } = {};
constructor(
private readonly usersService: UsersService,
@ -22,14 +22,14 @@ export class UsersProviderService {
) {
}
public getUser(id: string, me: string | null = 'Me'): Observable<PublicUserDto> {
public getUser(id: string, me: string | null = 'Me'): Observable<UserDto> {
let result = this.caches[id];
if (!result) {
const request =
this.usersService.getUser(id)
.catch(error => {
return Observable.of(new PublicUserDto('Unknown', 'Unknown'));
return Observable.of(new UserDto('Unknown', 'Unknown'));
})
.publishLast();
@ -41,7 +41,7 @@ export class UsersProviderService {
return result
.map(dto => {
if (me && this.authService.user && dto.id === this.authService.user.id) {
dto = new PublicUserDto(dto.id, me);
dto = new UserDto(dto.id, me);
}
return dto;
}).share();

229
src/Squidex/app/shared/services/users.service.spec.ts

@ -10,39 +10,10 @@ import { inject, TestBed } from '@angular/core/testing';
import {
ApiUrlConfig,
CreateUserDto,
PublicUserDto,
UpdateUserDto,
UserDto,
UserManagementService,
UsersDto,
UsersService
} from './../';
describe('UserDto', () => {
it('should update email and display name property when unlocking', () => {
const user_1 = new UserDto('1', 'sebastian@squidex.io', 'Sebastian', true);
const user_2 = user_1.update('qaisar@squidex.io', 'Qaisar');
expect(user_2.email).toEqual('qaisar@squidex.io');
expect(user_2.displayName).toEqual('Qaisar');
});
it('should update isLocked property when locking', () => {
const user_1 = new UserDto('1', 'sebastian@squidex.io', 'Sebastian', false);
const user_2 = user_1.lock();
expect(user_2.isLocked).toBeTruthy();
});
it('should update isLocked property when unlocking', () => {
const user_1 = new UserDto('1', 'sebastian@squidex.io', 'Sebastian', true);
const user_2 = user_1.unlock();
expect(user_2.isLocked).toBeFalsy();
});
});
describe('UsersService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
@ -63,7 +34,7 @@ describe('UsersService', () => {
it('should make get request to get many users',
inject([UsersService, HttpTestingController], (usersService: UsersService, httpMock: HttpTestingController) => {
let users: PublicUserDto[] | null = null;
let users: UserDto[] | null = null;
usersService.getUsers().subscribe(result => {
users = result;
@ -87,15 +58,15 @@ describe('UsersService', () => {
expect(users).toEqual(
[
new PublicUserDto('123', 'User1'),
new PublicUserDto('456', 'User2')
new UserDto('123', 'User1'),
new UserDto('456', 'User2')
]);
}));
it('should make get request with query to get many users',
inject([UsersService, HttpTestingController], (usersService: UsersService, httpMock: HttpTestingController) => {
let users: PublicUserDto[] | null = null;
let users: UserDto[] | null = null;
usersService.getUsers('my-query').subscribe(result => {
users = result;
@ -119,15 +90,15 @@ describe('UsersService', () => {
expect(users).toEqual(
[
new PublicUserDto('123', 'User1'),
new PublicUserDto('456', 'User2')
new UserDto('123', 'User1'),
new UserDto('456', 'User2')
]);
}));
it('should make get request to get single user',
inject([UsersService, HttpTestingController], (usersService: UsersService, httpMock: HttpTestingController) => {
let user: PublicUserDto | null = null;
let user: UserDto | null = null;
usersService.getUser('123').subscribe(result => {
user = result;
@ -140,190 +111,6 @@ describe('UsersService', () => {
req.flush({ id: '123', displayName: 'User1' });
expect(user).toEqual(new PublicUserDto('123', 'User1'));
}));
});
describe('UserManagementService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
HttpClientTestingModule
],
providers: [
UserManagementService,
{ provide: ApiUrlConfig, useValue: new ApiUrlConfig('http://service/p/') }
]
});
});
afterEach(inject([HttpTestingController], (httpMock: HttpTestingController) => {
httpMock.verify();
}));
it('should make get request to get many users',
inject([UserManagementService, HttpTestingController], (userManagementService: UserManagementService, httpMock: HttpTestingController) => {
let users: UsersDto | null = null;
userManagementService.getUsers(20, 30).subscribe(result => {
users = result;
});
const req = httpMock.expectOne('http://service/p/api/user-management?take=20&skip=30&query=');
expect(req.request.method).toEqual('GET');
expect(req.request.headers.get('If-Match')).toBeNull();
req.flush({
total: 100,
items: [
{
id: '123',
email: 'mail1@domain.com',
displayName: 'User1',
isLocked: true
},
{
id: '456',
email: 'mail2@domain.com',
displayName: 'User2',
isLocked: true
}
]
});
expect(users).toEqual(
new UsersDto(100, [
new UserDto('123', 'mail1@domain.com', 'User1', true),
new UserDto('456', 'mail2@domain.com', 'User2', true)
]));
}));
it('should make get request with query to get many users',
inject([UserManagementService, HttpTestingController], (userManagementService: UserManagementService, httpMock: HttpTestingController) => {
let users: UsersDto | null = null;
userManagementService.getUsers(20, 30, 'my-query').subscribe(result => {
users = result;
});
const req = httpMock.expectOne('http://service/p/api/user-management?take=20&skip=30&query=my-query');
expect(req.request.method).toEqual('GET');
expect(req.request.headers.get('If-Match')).toBeNull();
req.flush({
total: 100,
items: [
{
id: '123',
email: 'mail1@domain.com',
displayName: 'User1',
pictureUrl: 'path/to/image1',
isLocked: true
},
{
id: '456',
email: 'mail2@domain.com',
displayName: 'User2',
pictureUrl: 'path/to/image2',
isLocked: true
}
]
});
expect(users).toEqual(
new UsersDto(100, [
new UserDto('123', 'mail1@domain.com', 'User1', true),
new UserDto('456', 'mail2@domain.com', 'User2', true)
]));
}));
it('should make get request to get single user',
inject([UserManagementService, HttpTestingController], (userManagementService: UserManagementService, httpMock: HttpTestingController) => {
let user: UserDto | null = null;
userManagementService.getUser('123').subscribe(result => {
user = result;
});
const req = httpMock.expectOne('http://service/p/api/user-management/123');
expect(req.request.method).toEqual('GET');
expect(req.request.headers.get('If-Match')).toBeNull();
req.flush({
id: '123',
email: 'mail1@domain.com',
displayName: 'User1',
isLocked: true
});
expect(user).toEqual(new UserDto('123', 'mail1@domain.com', 'User1', true));
}));
it('should make post request to create user',
inject([UserManagementService, HttpTestingController], (userManagementService: UserManagementService, httpMock: HttpTestingController) => {
const dto = new CreateUserDto('mail@squidex.io', 'Squidex User', 'password');
let user: UserDto | null = null;
userManagementService.postUser(dto).subscribe(result => {
user = result;
});
const req = httpMock.expectOne('http://service/p/api/user-management');
expect(req.request.method).toEqual('POST');
expect(req.request.headers.get('If-Match')).toBeNull();
req.flush({ id: '123' });
expect(user).toEqual(new UserDto('123', dto.email, dto.displayName, false));
}));
it('should make put request to update user',
inject([UserManagementService, HttpTestingController], (userManagementService: UserManagementService, httpMock: HttpTestingController) => {
const dto = new UpdateUserDto('mail@squidex.io', 'Squidex User', 'password');
userManagementService.putUser('123', dto).subscribe();
const req = httpMock.expectOne('http://service/p/api/user-management/123');
expect(req.request.method).toEqual('PUT');
expect(req.request.headers.get('If-Match')).toBeNull();
req.flush({});
}));
it('should make put request to lock user',
inject([UserManagementService, HttpTestingController], (userManagementService: UserManagementService, httpMock: HttpTestingController) => {
userManagementService.lockUser('123').subscribe();
const req = httpMock.expectOne('http://service/p/api/user-management/123/lock');
expect(req.request.method).toEqual('PUT');
expect(req.request.headers.get('If-Match')).toBeNull();
req.flush({});
}));
it('should make put request to unlock user',
inject([UserManagementService, HttpTestingController], (userManagementService: UserManagementService, httpMock: HttpTestingController) => {
userManagementService.unlockUser('123').subscribe();
const req = httpMock.expectOne('http://service/p/api/user-management/123/unlock');
expect(req.request.method).toEqual('PUT');
expect(req.request.headers.get('If-Match')).toBeNull();
req.flush({});
expect(user).toEqual(new UserDto('123', 'User1'));
}));
});

136
src/Squidex/app/shared/services/users.service.ts

@ -13,55 +13,7 @@ import '@app/framework/angular/http/http-extensions';
import { ApiUrlConfig, HTTP } from '@app/framework';
export class UsersDto {
constructor(
public readonly total: number,
public readonly items: UserDto[]
) {
}
}
export class UserDto {
constructor(
public readonly id: string,
public readonly email: string,
public readonly displayName: string,
public readonly isLocked: boolean
) {
}
public update(email: string, displayName: string): UserDto {
return new UserDto(this.id, email, displayName, this.isLocked);
}
public lock(): UserDto {
return new UserDto(this.id, this.email, this.displayName, true);
}
public unlock(): UserDto {
return new UserDto(this.id, this.email, this.displayName, false);
}
}
export class CreateUserDto {
constructor(
public readonly email: string,
public readonly displayName: string,
public readonly password: string
) {
}
}
export class UpdateUserDto {
constructor(
public readonly email: string,
public readonly displayName: string,
public readonly password: string
) {
}
}
export class PublicUserDto {
constructor(
public readonly id: string,
public readonly displayName: string
@ -77,7 +29,7 @@ export class UsersService {
) {
}
public getUsers(query?: string): Observable<PublicUserDto[]> {
public getUsers(query?: string): Observable<UserDto[]> {
const url = this.apiUrl.buildUrl(`api/users?query=${query || ''}`);
return HTTP.getVersioned<any>(this.http, url)
@ -87,61 +39,16 @@ export class UsersService {
const items: any[] = body;
return items.map(item => {
return new PublicUserDto(
item.id,
item.displayName);
});
})
.pretifyError('Failed to load users. Please reload.');
}
public getUser(id: string): Observable<PublicUserDto> {
const url = this.apiUrl.buildUrl(`api/users/${id}`);
return HTTP.getVersioned<any>(this.http, url)
.map(response => {
const body = response.payload.body;
return new PublicUserDto(
body.id,
body.displayName);
})
.pretifyError('Failed to load user. Please reload.');
}
}
@Injectable()
export class UserManagementService {
constructor(
private readonly http: HttpClient,
private readonly apiUrl: ApiUrlConfig
) {
}
public getUsers(take: number, skip: number, query?: string): Observable<UsersDto> {
const url = this.apiUrl.buildUrl(`api/user-management?take=${take}&skip=${skip}&query=${query || ''}`);
return HTTP.getVersioned<any>(this.http, url)
.map(response => {
const body = response.payload.body;
const items: any[] = body.items;
const users = items.map(item => {
return new UserDto(
item.id,
item.email,
item.displayName,
item.isLocked);
item.displayName);
});
return new UsersDto(body.total, users);
})
.pretifyError('Failed to load users. Please reload.');
}
public getUser(id: string): Observable<UserDto> {
const url = this.apiUrl.buildUrl(`api/user-management/${id}`);
const url = this.apiUrl.buildUrl(`api/users/${id}`);
return HTTP.getVersioned<any>(this.http, url)
.map(response => {
@ -149,43 +56,8 @@ export class UserManagementService {
return new UserDto(
body.id,
body.email,
body.displayName,
body.isLocked);
body.displayName);
})
.pretifyError('Failed to load user. Please reload.');
}
public postUser(dto: CreateUserDto): Observable<UserDto> {
const url = this.apiUrl.buildUrl('api/user-management');
return HTTP.postVersioned<any>(this.http, url, dto)
.map(response => {
const body = response.payload.body;
return new UserDto(body.id, dto.email, dto.displayName, false);
})
.pretifyError('Failed to create user. Please reload.');
}
public putUser(id: string, dto: UpdateUserDto): Observable<any> {
const url = this.apiUrl.buildUrl(`api/user-management/${id}`);
return HTTP.putVersioned(this.http, url, dto)
.pretifyError('Failed to update user. Please reload.');
}
public lockUser(id: string): Observable<any> {
const url = this.apiUrl.buildUrl(`api/user-management/${id}/lock`);
return HTTP.putVersioned(this.http, url, {})
.pretifyError('Failed to load users. Please retry.');
}
public unlockUser(id: string): Observable<any> {
const url = this.apiUrl.buildUrl(`api/user-management/${id}/unlock`);
return HTTP.putVersioned(this.http, url, {})
.pretifyError('Failed to load users. Please retry.');
}
}
Loading…
Cancel
Save