humainflow-web/src/app/services/admin/admin-call.base.ts

32 lines
1.0 KiB
TypeScript

// SPDX-FileCopyrightText: 2025-2026 Lucio Lelii <lucio.lelii@isti.cnr.it> - ISTI-CNR
// SPDX-License-Identifier: AGPL-3.0-or-later
// Attribution term under AGPL-3.0 section 7(b): see LICENSE-ADDENDUM.
import {
AdminChangeRoleRequest,
AdminCreateUserRequest,
AdminResetPasswordRequest,
AdminUser,
OperationsStatistics,
UserStatistics
} from "@models/user";
import { Observable } from "rxjs";
export abstract class AdminCallServiceBase {
abstract listAdminUsers(): Observable<AdminUser[]>;
abstract createAdminUser(request: AdminCreateUserRequest): Observable<void>;
abstract changeAdminUserPassword(username: string, request: AdminResetPasswordRequest): Observable<void>;
abstract changeAdminUserRole(username: string, request: AdminChangeRoleRequest): Observable<void>;
abstract deleteAdminUser(username: string): Observable<void>;
abstract getOperationsStatistics(): Observable<OperationsStatistics>;
abstract listStatisticsUsers(): Observable<string[]>;
abstract getUserStatistics(username: string): Observable<UserStatistics>;
}