Aktualisierung der Angular-Api-Dienste entsprechend dem DTO.

This commit is contained in:
Developer 02 2024-07-02 17:51:35 +02:00
parent 0a0a327e58
commit b548aa796a
15 changed files with 93 additions and 141 deletions

View File

@ -9,10 +9,10 @@ import { ColorModeService, Theme } from 'src/app/services/color-mode.service';
templateUrl: './base-table.component.html', templateUrl: './base-table.component.html',
styleUrl: './base-table.component.css' styleUrl: './base-table.component.css'
}) })
export class BaseTableComponent<TModel, TApiService extends ApiService<TModel>> implements OnInit, AfterViewInit, OnDestroy { export class BaseTableComponent<TModel, TApiService extends ApiService<TModel>> implements OnInit, AfterViewInit, OnDestroy {
service: TApiService; service: TApiService;
columnMenu: GuiColumnMenu = { columnMenu: GuiColumnMenu = {
enabled: true, enabled: true,
sort: true, sort: true,
@ -26,7 +26,7 @@ export class BaseTableComponent<TModel, TApiService extends ApiService<TModel>>
loading: boolean = true; loading: boolean = true;
autoResizeWidth: boolean = true; autoResizeWidth: boolean = true;
rowDetail: GuiRowDetail = { rowDetail: GuiRowDetail = {
enabled : true, enabled: true,
template: (item: TModel) => { template: (item: TModel) => {
return ` return `
<div></div>`; <div></div>`;
@ -59,25 +59,25 @@ export class BaseTableComponent<TModel, TApiService extends ApiService<TModel>>
<div class='title-panel-example' >List of contract workers</div> <div class='title-panel-example' >List of contract workers</div>
`; `;
} }
}; };
theme: GuiTheme = localStorage.getItem('theme') === 'dark'? GuiTheme.DARK : GuiTheme.FABRIC; theme: GuiTheme = localStorage.getItem('theme') === 'dark' ? GuiTheme.DARK : GuiTheme.FABRIC;
private themeSubscription: Subscription = new Subscription(); private themeSubscription: Subscription = new Subscription();
constructor(@Inject(ApiService<TModel>) service: TApiService, columns: Array<GuiColumn>, private cModeService: ColorModeService) { constructor(@Inject(ApiService<TModel>) service: TApiService, columns: Array<GuiColumn>, private cModeService: ColorModeService) {
this.service = service; this.service = service;
if(this.columns.length == 0) if (this.columns.length == 0)
this.columns = columns; this.columns = columns;
//assign row details //assign row details
if(this.rowDetailTemplate === null || this.rowDetailTemplate === undefined) if (this.rowDetailTemplate === null || this.rowDetailTemplate === undefined)
this.rowDetail = { this.rowDetail = {
enabled : false, enabled: false,
}; };
else else
this.rowDetail = { this.rowDetail = {
enabled : true, enabled: true,
template: (this.rowDetailTemplate) template: (this.rowDetailTemplate)
}; };
} }
@ -101,40 +101,40 @@ export class BaseTableComponent<TModel, TApiService extends ApiService<TModel>>
@Input() rowSelection: boolean | GuiRowSelection = true; @Input() rowSelection: boolean | GuiRowSelection = true;
@Input() onSelectedRows: (rows: Array<GuiSelectedRow>) => void = (rows) => {}; @Input() onSelectedRows: (rows: Array<GuiSelectedRow>) => void = (rows) => { };
@Input() initData : () => void = this.fetchData; @Input() initData: () => void = this.fetchData;
@Input() columns: Array<GuiColumn> = []; @Input() columns: Array<GuiColumn> = [];
selected: boolean = false; selected: boolean = false;
safelyUnselectAll() { safelyUnselectAll() {
this.selected = true this.selected = true
if(this.api?.getSelectedRows() != undefined) if (this.api?.getSelectedRows() != undefined)
if((this.api?.getSelectedRows().length ?? 0 > 0) && this.selected) { if ((this.api?.getSelectedRows().length ?? 0 > 0) && this.selected) {
this.api?.unselectAll() this.api?.unselectAll()
this.selected = false this.selected = false
} }
} }
@ViewChild('grid', { static: true }) mainGrid!: GuiGridComponent; @ViewChild('grid', { static: true }) mainGrid!: GuiGridComponent;
private get api() : GuiGridApi { private get api(): GuiGridApi {
return this.mainGrid.api; return this.mainGrid.api;
} }
set source(data : TModel[]) { set source(data: TModel[]) {
this.api.setSource(data) this.api.setSource(data)
} }
get selectedRows(): Array<GuiSelectedRow> { get selectedRows(): Array<GuiSelectedRow> {
return this.api.getSelectedRows(); return this.api.getSelectedRows();
} }
ngOnInit(): void { ngOnInit(): void {
const subscription = this.cModeService.themeChanges$.subscribe((theme: Theme) => { const subscription = this.cModeService.themeChanges$.subscribe((theme: Theme) => {
this.theme = theme === 'dark'? GuiTheme.DARK : GuiTheme.FABRIC; this.theme = theme === 'dark' ? GuiTheme.DARK : GuiTheme.FABRIC;
}); });
this.themeSubscription.add(subscription); this.themeSubscription.add(subscription);
@ -147,17 +147,12 @@ export class BaseTableComponent<TModel, TApiService extends ApiService<TModel>>
ngAfterViewInit(): void { ngAfterViewInit(): void {
} }
fetchData(): void { fetchData(): void {
this.service.getAll().subscribe({ this.service.getAll().subscribe({
next: (response) => { next: (response) => {
if (response.isSuccess && response.data) { this.source = response;
this.source = response.data; this.loading = false;
this.loading = false;
} else {
// Handle response failure
console.error('Failed to fetch users');
}
}, },
error: (error) => console.error('Error fetching users:', error) error: (error) => console.error('Error fetching users:', error)
}); });

View File

@ -17,17 +17,11 @@ export class DirUserTableComponent extends BaseTableComponent<DirUser, DirUserSe
fetchDataByGroupName(groupName: string): void { fetchDataByGroupName(groupName: string): void {
this.service.getAll(groupName).subscribe({ this.service.getAll(groupName).subscribe({
next: (response) => { next: (response: any) => {
if (response.isSuccess && response.data) { this.source = response;
this.source = response.data; this.loading = false;
this.loading = false;
} else {
// Handle response failure
this.loading = false;
console.error('Failed to fetch users');
}
}, },
error: (error) => console.error('Error fetching users:', error) error: (error: any) => console.error('Error fetching users:', error)
}) })
} }
} }

View File

@ -20,12 +20,7 @@ export class GroupUserTableComponent extends BaseTableComponent<GroupOfUser, Gro
fetchDataWith(withUser: boolean, withGroup: boolean){ fetchDataWith(withUser: boolean, withGroup: boolean){
this.service.getAll(withUser, withGroup).subscribe ({ this.service.getAll(withUser, withGroup).subscribe ({
next: (response) => { next: (response) => {
if (response.isSuccess && response.data) { this.source = response;
this.source = response.data;
} else {
// Handle response failure
console.error('Failed to fetch users');
}
}, },
error: (error) => console.error('Error fetching users:', error) error: (error) => console.error('Error fetching users:', error)
}); });

View File

@ -1,9 +1,9 @@
import { Component, Inject } from '@angular/core'; import { Component, Inject } from '@angular/core';
import { UserRep } from 'src/app/models/user-management.api.models'; import { UserRep } from '../../../models/user-management.api.models';
import { UserRepService } from 'src/app/services/user-representation.service'; import { UserRepService } from '../../../services/user-representation.service';
import { BaseTableComponent } from '../base-table/base-table.component'; import { BaseTableComponent } from '../base-table/base-table.component';
import { GuiColumn } from '@generic-ui/ngx-grid'; import { GuiColumn } from '@generic-ui/ngx-grid';
import { ColorModeService } from 'src/app/services/color-mode.service'; import { ColorModeService } from '../../../services/color-mode.service';
@Component({ @Component({
selector: 'app-user-rep-table', selector: 'app-user-rep-table',
@ -19,16 +19,11 @@ export class UserRepTableComponent extends BaseTableComponent<UserRep, UserRepSe
override fetchData(userId?: number): void { override fetchData(userId?: number): void {
this.service.getAll(false, true, true, true, userId).subscribe({ this.service.getAll(false, true, true, true, userId).subscribe({
next: (response) => { next: (response: any) => {
if (response.isSuccess && response.data) { this.source = response;
this.source = response.data; this.loading = false;
this.loading = false;
} else {
// Handle response failure
console.error('Failed to fetch users');
}
}, },
error: (error) => console.error('Error fetching users:', error) error: (error: any) => console.error('Error fetching users:', error)
}); });
} }
} }

View File

@ -5,7 +5,7 @@ import { GroupOfUserService } from '../../../services/group-of-user.service';
import { User } from '../../../models/user-management.api.models'; import { User } from '../../../models/user-management.api.models';
import { GuiColumn } from '@generic-ui/ngx-grid'; import { GuiColumn } from '@generic-ui/ngx-grid';
import { BaseTableComponent } from '../base-table/base-table.component'; import { BaseTableComponent } from '../base-table/base-table.component';
import { ColorModeService } from 'src/app/services/color-mode.service'; import { ColorModeService } from '../../../services/color-mode.service'
@Component({ @Component({
selector: 'app-user-table', selector: 'app-user-table',
@ -25,14 +25,8 @@ export class UserTableComponent extends BaseTableComponent<User, UserService> {
fetchDataByModuleId(moduleId: number, assigned: boolean = true): void { fetchDataByModuleId(moduleId: number, assigned: boolean = true): void {
this.service.getByModuleId(moduleId, assigned).subscribe({ this.service.getByModuleId(moduleId, assigned).subscribe({
next: (response) => { next: (users) => {
this.source = users;
if (response.isSuccess && response.data) {
this.source = response.data;
} else {
// Handle response failure
console.error('Failed to fetch users');
}
}, },
error: (error) => console.error('Error fetching users:', error) error: (error) => console.error('Error fetching users:', error)
}); });
@ -40,13 +34,8 @@ export class UserTableComponent extends BaseTableComponent<User, UserService> {
fetchDataByGroupId(groupId: number, assigned: boolean = true): void { fetchDataByGroupId(groupId: number, assigned: boolean = true): void {
this.service.getByGroupId(groupId, assigned).subscribe({ this.service.getByGroupId(groupId, assigned).subscribe({
next: (response) => { next: (users) => {
if (response.isSuccess && response.data) { this.source = users;
this.source = response.data;
} else {
// Handle response failure
console.error('Failed to fetch users');
}
}, },
error: (error) => console.error('Error fetching users:', error) error: (error) => console.error('Error fetching users:', error)
}); });
@ -55,24 +44,24 @@ export class UserTableComponent extends BaseTableComponent<User, UserService> {
async createModuleOfUsers(moduleId: number, users: User[]): Promise<any[]> { async createModuleOfUsers(moduleId: number, users: User[]): Promise<any[]> {
const creationPromises = users const creationPromises = users
.filter(user => user.guid && user.guid != null) .filter(user => user.guid && user.guid != null)
.map(user => this.mosService.create({ moduleId: moduleId, userId: user.guid??-1, addedWho:"DEFAULT" }).toPromise()); .map(user => this.mosService.create({ moduleId: moduleId, userId: user.guid ?? -1, addedWho: "DEFAULT" }).toPromise());
return Promise.all(creationPromises); return Promise.all(creationPromises);
} }
async createGroupOfUsers(groupId: number, users: User[]): Promise<any[]> { async createGroupOfUsers(groupId: number, users: User[]): Promise<any[]> {
const creationPromises = users const creationPromises = users
.filter(user => user.guid && user.guid != null) .filter(user => user.guid && user.guid != null)
.map(user => this.gosService.create({ groupId: groupId, userId: user.guid??-1, addedWho:"DEFAULT" }).toPromise()); .map(user => this.gosService.create({ groupId: groupId, userId: user.guid ?? -1, addedWho: "DEFAULT" }).toPromise());
return Promise.all(creationPromises); return Promise.all(creationPromises);
} }
async deleteModuleOfUsers(moduleId: number, users: User[]): Promise<void> { async deleteModuleOfUsers(moduleId: number, users: User[]): Promise<void> {
const deletionPromises = users const deletionPromises = users
.filter(user => user.guid) .filter(user => user.guid)
.map(user => this.mosService.deleteByModuleGroupId(moduleId, user.guid??-1).toPromise()); .map(user => this.mosService.deleteByModuleGroupId(moduleId, user.guid ?? -1).toPromise());
try { try {
const responses = await Promise.all(deletionPromises); const responses = await Promise.all(deletionPromises);
responses.forEach(response => { responses.forEach(response => {
@ -88,8 +77,8 @@ export class UserTableComponent extends BaseTableComponent<User, UserService> {
async deleteGroupOfUsers(groupId: number, users: User[]): Promise<void> { async deleteGroupOfUsers(groupId: number, users: User[]): Promise<void> {
const deletionPromises = users const deletionPromises = users
.filter(user => user.guid) .filter(user => user.guid)
.map(user => this.gosService.deleteByGroupUserId(groupId, user.guid??-1).toPromise()); .map(user => this.gosService.deleteByGroupUserId(groupId, user.guid ?? -1).toPromise());
try { try {
const responses = await Promise.all(deletionPromises); const responses = await Promise.all(deletionPromises);
responses.forEach(response => { responses.forEach(response => {
@ -100,5 +89,5 @@ export class UserTableComponent extends BaseTableComponent<User, UserService> {
} catch (error) { } catch (error) {
console.error('Error deleting group of users:', error); console.error('Error deleting group of users:', error);
} }
} }
} }

View File

@ -1,8 +0,0 @@
export interface ApiMessage {
isSuccess: boolean;
messages: string[];
}
export interface ApiResult<T> extends ApiMessage {
data?: T;
}

View File

@ -1,7 +1,6 @@
import { Inject, Injectable } from '@angular/core'; import { Inject, Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { Observable, of } from 'rxjs'; import { Observable, of } from 'rxjs';
import { ApiMessage, ApiResult } from '../models/api.response.model';
import { AuthCheckDto } from '../models/user-management.api.models'; import { AuthCheckDto } from '../models/user-management.api.models';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import Swal from 'sweetalert2'; import Swal from 'sweetalert2';
@ -50,14 +49,16 @@ export class AuthenticationService {
}); });
} }
logout(): Observable<ApiMessage> { logout(): Observable<any> {
return new Observable(observer => { return new Observable(observer => {
this.http.post<ApiMessage>(this.logoutUrl, {}, { withCredentials: true }) this.http.post<any>(this.logoutUrl, {}, { withCredentials: true })
.subscribe({ .subscribe({
next: (response) => { next: (response) => {
this.router.navigate(['/']); if (response.ok) {
_isLogedIn = false; this.router.navigate(['/']);
observer.next(response) _isLogedIn = false;
observer.next(response)
}
}, },
error: (error) => observer.error(error), error: (error) => observer.error(error),
complete: () => observer.complete() complete: () => observer.complete()

View File

@ -1,8 +1,7 @@
import { Injectable, Inject } from '@angular/core'; import { Injectable, Inject } from '@angular/core';
import { HttpClient } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { DirGroup, DirUser } from '../models/user-management.api.models'; import { DirGroup, } from '../models/user-management.api.models';
import { ApiService } from './user-management.api.service'; import { ApiService } from './user-management.api.service';
import { ApiResult } from '../models/api.response.model';
import { Observable } from 'rxjs/internal/Observable'; import { Observable } from 'rxjs/internal/Observable';
import Swal from 'sweetalert2'; import Swal from 'sweetalert2';
@ -14,21 +13,20 @@ export class DirGroupService extends ApiService<DirGroup> {
super(http, userUri); super(http, userUri);
} }
override getAll(): Observable<ApiResult<DirGroup[]>> { //TODO: Swal.fire
return new Observable(observer => { override getAll(): Observable<DirGroup[]> {
return new Observable<DirGroup[]>(observer => {
super.getAll() super.getAll()
.subscribe({ .subscribe({
next: (response) => { next: (response) => {
if(!response.isSuccess || !response.data) {
Swal.fire({
icon: "error",
title: "Oops...",
text: `Active Directory-Verbindung verloren. Bitte melden Sie sich erneut an`,
});
}
observer.next(response) observer.next(response)
}, },
error: (error) => { error: (error) => {
Swal.fire({
icon: "error",
title: "Oops...",
text: `Active Directory-Verbindung verloren. Bitte melden Sie sich erneut an`,
});
observer.error(error) observer.error(error)
}, },
complete: () => observer.complete() complete: () => observer.complete()

View File

@ -3,7 +3,6 @@ import { HttpClient, HttpParams } from '@angular/common/http';
import { DirUser } from '../models/user-management.api.models'; import { DirUser } from '../models/user-management.api.models';
import { ApiService } from './user-management.api.service'; import { ApiService } from './user-management.api.service';
import { Observable } from 'rxjs/internal/Observable'; import { Observable } from 'rxjs/internal/Observable';
import { ApiResult } from '../models/api.response.model';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
@ -13,12 +12,12 @@ export class DirUserService extends ApiService<DirUser> {
super(http, userUri); super(http, userUri);
} }
override getAll(groupName?: string): Observable<ApiResult<DirUser[]>> { override getAll(groupName?: string): Observable<DirUser[]> {
let params = new HttpParams(); let params = new HttpParams();
if (groupName) { if (groupName) {
params = params.set('groupName', groupName); params = params.set('groupName', groupName);
} }
return this.http.get<ApiResult<DirUser[]>>(this.baseUrl, { params, withCredentials: true }); return this.http.get<DirUser[]>(this.baseUrl, { params, withCredentials: true });
} }
} }

View File

@ -1,6 +1,5 @@
import { HttpClient, HttpParams } from '@angular/common/http'; import { HttpClient, HttpParams } from '@angular/common/http';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { ApiResult } from '../models/api.response.model';
import { Inject, Injectable } from '@angular/core'; import { Inject, Injectable } from '@angular/core';
import { DirUser } from '../models/user-management.api.models'; import { DirUser } from '../models/user-management.api.models';
@ -12,12 +11,12 @@ export class DirService {
this.http = http; this.http = http;
} }
getUser(groupName: string): Observable<ApiResult<DirUser[]>> { getUser(groupName: string): Observable<DirUser[]> {
let params = new HttpParams(); let params = new HttpParams();
if (groupName) { if (groupName) {
params = params.set('groupName', groupName); params = params.set('groupName', groupName);
} }
return this.http.get<ApiResult<DirUser[]>>(this.baseUrl, { params, withCredentials: true }); return this.http.get<DirUser[]>(this.baseUrl, { params, withCredentials: true });
} }
} }

View File

@ -2,7 +2,6 @@ import { Injectable, Inject } from '@angular/core';
import { HttpClient, HttpParams } from '@angular/common/http'; import { HttpClient, HttpParams } from '@angular/common/http';
import { GroupOfUser } from '../models/user-management.api.models'; import { GroupOfUser } from '../models/user-management.api.models';
import { ApiService } from './user-management.api.service'; import { ApiService } from './user-management.api.service';
import { ApiResult } from '../models/api.response.model';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
@Injectable({ @Injectable({
@ -13,12 +12,12 @@ export class GroupOfUserService extends ApiService<GroupOfUser> {
super(http, userUri); super(http, userUri);
} }
deleteByGroupUserId(groupId: number, userId: number): Observable<ApiResult<any>> { deleteByGroupUserId(groupId: number, userId: number): Observable<any> {
const url = `${this.baseUrl}?groupId=${groupId}&userId=${userId}`; const url = `${this.baseUrl}?groupId=${groupId}&userId=${userId}`;
return this.http.delete<ApiResult<any>>(url, { withCredentials: true }); return this.http.delete<any>(url, { withCredentials: true });
} }
override getAll(withUser: boolean = false, withGroup: boolean = false): Observable<ApiResult<GroupOfUser[]>> { override getAll(withUser: boolean = false, withGroup: boolean = false): Observable<GroupOfUser[]> {
let params = new HttpParams(); let params = new HttpParams();
if (withUser) { if (withUser) {
params = params.set('withUser', withUser); params = params.set('withUser', withUser);
@ -27,6 +26,6 @@ export class GroupOfUserService extends ApiService<GroupOfUser> {
params = params.set('withGroup', withGroup); params = params.set('withGroup', withGroup);
} }
return this.http.get<ApiResult<GroupOfUser[]>>(this.baseUrl, { params, withCredentials: true }); return this.http.get<GroupOfUser[]>(this.baseUrl, { params, withCredentials: true });
} }
} }

View File

@ -2,7 +2,6 @@ import { Injectable, Inject } from '@angular/core';
import { HttpClient } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { ModuleOfUser } from '../models/user-management.api.models'; import { ModuleOfUser } from '../models/user-management.api.models';
import { ApiService } from './user-management.api.service'; import { ApiService } from './user-management.api.service';
import { ApiResult } from '../models/api.response.model';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
@Injectable({ @Injectable({
@ -13,8 +12,8 @@ export class ModuleOfUserService extends ApiService<ModuleOfUser> {
super(http, userUri); super(http, userUri);
} }
deleteByModuleGroupId(moduleId: number, userId: number): Observable<ApiResult<any>> { deleteByModuleGroupId(moduleId: number, userId: number): Observable<any> {
const url = `${this.baseUrl}?moduleId=${moduleId}&userId=${userId}`; const url = `${this.baseUrl}?moduleId=${moduleId}&userId=${userId}`;
return this.http.delete<ApiResult<any>>(url, { withCredentials: true }); return this.http.delete<any>(url, { withCredentials: true });
} }
} }

View File

@ -1,6 +1,5 @@
import { HttpClient } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { ApiResult } from '../models/api.response.model';
import { Inject, Injectable } from '@angular/core'; import { Inject, Injectable } from '@angular/core';
@Injectable({ @Injectable({
@ -15,26 +14,26 @@ export class ApiService<Model> {
http: HttpClient; http: HttpClient;
baseUrl: string; baseUrl: string;
getAll(): Observable<ApiResult<Model[]>> { getAll(): Observable<Model[]> {
return this.http.get<ApiResult<Model[]>>(this.baseUrl, { withCredentials: true }); return this.http.get<Model[]>(this.baseUrl, { withCredentials: true });
} }
getById(id: number): Observable<ApiResult<Model>> { getById(id: number): Observable<Model> {
const url = `${this.baseUrl}/${id}`; const url = `${this.baseUrl}/${id}`;
return this.http.get<ApiResult<Model>>(url, { withCredentials: true }); return this.http.get<Model>(url, { withCredentials: true });
} }
create(createModel: Model): Observable<Model> { create(createModel: Model): Observable<Model> {
return this.http.post<Model>(this.baseUrl, createModel, { withCredentials: true }); return this.http.post<Model>(this.baseUrl, createModel, { withCredentials: true });
} }
update(updateModel: Model): Observable<ApiResult<Model>> { update(updateModel: Model): Observable<Model> {
const url = `${this.baseUrl}`; const url = `${this.baseUrl}`;
return this.http.put<ApiResult<Model>>(url, updateModel, { withCredentials: true }); return this.http.put<Model>(url, updateModel, { withCredentials: true });
} }
delete(id: number): Observable<ApiResult<any>> { delete(id: number): Observable<any> {
const url = `${this.baseUrl}/${id}`; const url = `${this.baseUrl}/${id}`;
return this.http.delete<ApiResult<any>>(url, { withCredentials: true }); return this.http.delete<any>(url, { withCredentials: true });
} }
} }

View File

@ -2,7 +2,6 @@ import { Inject, Injectable } from "@angular/core";
import { UserRep } from "../models/user-management.api.models"; import { UserRep } from "../models/user-management.api.models";
import { ApiService } from "./user-management.api.service"; import { ApiService } from "./user-management.api.service";
import { HttpClient, HttpParams } from "@angular/common/http"; import { HttpClient, HttpParams } from "@angular/common/http";
import { ApiResult } from "../models/api.response.model";
import { Observable } from "rxjs"; import { Observable } from "rxjs";
@Injectable({ @Injectable({
@ -13,7 +12,7 @@ export class UserRepService extends ApiService<UserRep> {
super(http, userRepUri) super(http, userRepUri)
} }
override getAll(withUser: boolean = false, withRepGroup: boolean = false, withRightGroup: boolean = false, withRepUser: boolean = false, userId?: number): Observable<ApiResult<UserRep[]>> { override getAll(withUser: boolean = false, withRepGroup: boolean = false, withRightGroup: boolean = false, withRepUser: boolean = false, userId?: number): Observable<UserRep[]> {
let params = new HttpParams(); let params = new HttpParams();
if (withUser) { if (withUser) {
params = params.set('withUser', withUser); params = params.set('withUser', withUser);
@ -31,6 +30,6 @@ export class UserRepService extends ApiService<UserRep> {
params = params.set('userId', userId) params = params.set('userId', userId)
} }
return this.http.get<ApiResult<UserRep[]>>(`${this.baseUrl}`, { params: params, withCredentials: true }); return this.http.get<UserRep[]>(`${this.baseUrl}`, { params: params, withCredentials: true });
} }
} }

View File

@ -3,7 +3,6 @@ import { HttpClient } from '@angular/common/http';
import { DirUser, User } from '../models/user-management.api.models'; import { DirUser, User } from '../models/user-management.api.models';
import { ApiService } from './user-management.api.service'; import { ApiService } from './user-management.api.service';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { ApiResult } from '../models/api.response.model';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
@ -13,14 +12,14 @@ export class UserService extends ApiService<User> {
super(http, userUri); super(http, userUri);
} }
getByModuleId(moduleId: number, assigned: boolean = true): Observable<ApiResult<User[]>> { getByModuleId(moduleId: number, assigned: boolean = true): Observable<User[]> {
const url = `${this.baseUrl}/ByModuleId/${moduleId}?assigned=${assigned}`; const url = `${this.baseUrl}/ByModuleId/${moduleId}?assigned=${assigned}`;
return this.http.get<ApiResult<User[]>>(url, { withCredentials: true }); return this.http.get<User[]>(url, { withCredentials: true });
} }
getByGroupId(groupId: number, assigned: boolean = true): Observable<ApiResult<User[]>> { getByGroupId(groupId: number, assigned: boolean = true): Observable<User[]> {
const url = `${this.baseUrl}/ByGroupId/${groupId}?assigned=${assigned}`; const url = `${this.baseUrl}/ByGroupId/${groupId}?assigned=${assigned}`;
return this.http.get<ApiResult<User[]>>(url, { withCredentials: true }); return this.http.get<User[]>(url, { withCredentials: true });
} }
createByDir(createModel: DirUser): Observable<DirUser> { createByDir(createModel: DirUser): Observable<DirUser> {