change frontend to custom logger

This commit is contained in:
rubikscraft
2022-03-30 11:58:26 +02:00
parent c4e35dacd3
commit ac34dcd0b5
17 changed files with 43 additions and 23 deletions

View File

@@ -37,9 +37,7 @@ const routes: PRoutes = [
@NgModule({
imports: [
RouterModule.forRoot(routes, {
errorHandler: (error) => console.warn(error.message),
}),
RouterModule.forRoot(routes),
],
exports: [RouterModule],
})

View File

@@ -73,7 +73,6 @@ export class ValuesPickerComponent implements OnInit, OnChanges {
}
private addItem(value: string) {
console.log('adding', value);
const selectable = this.selectableSubject.getValue();
if (this.isDisabled(value) || !selectable.includes(value)) return;

View File

@@ -35,12 +35,10 @@ export class PermissionGuard implements CanActivate, CanActivateChild {
childRoute: ActivatedRouteSnapshot,
state: RouterStateSnapshot
) {
//console.log('canActivateChild');
return await this.can(childRoute, state);
}
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
//console.log('canActivate');
return await this.can(route, state);
}

View File

@@ -5,6 +5,7 @@ import { SnackBarType } from 'src/app/models/dto/snack-bar-type.dto';
import { UpdateRoleControl } from 'src/app/models/forms/updaterole.control';
import { RolesService } from 'src/app/services/api/roles.service';
import { StaticInfoService } from 'src/app/services/api/static-info.service';
import { Logger } from 'src/app/services/logger/logger.service';
import { UtilService } from 'src/app/util/util.service';
enum EditMode {
@@ -17,6 +18,8 @@ enum EditMode {
styleUrls: ['./settings-roles-edit.component.scss'],
})
export class SettingsRolesEditComponent implements OnInit {
private readonly logger = new Logger('SettingsRolesEditComponent');
private mode: EditMode = EditMode.edit;
model = new UpdateRoleControl();
@@ -38,7 +41,7 @@ export class SettingsRolesEditComponent implements OnInit {
) {}
ngOnInit() {
Promise.all([this.initRole(), this.initPermissions()]).catch(console.error);
Promise.all([this.initRole(), this.initPermissions()]).catch(this.logger.error);
}
private async initRole() {

View File

@@ -9,6 +9,7 @@ import { UIFriendlyPermissions } from 'src/app/i18n/permissions.i18n';
import { SnackBarType } from 'src/app/models/dto/snack-bar-type.dto';
import { RolesService } from 'src/app/services/api/roles.service';
import { StaticInfoService } from 'src/app/services/api/static-info.service';
import { Logger } from 'src/app/services/logger/logger.service';
import { UtilService } from 'src/app/util/util.service';
@Component({
@@ -16,6 +17,8 @@ import { UtilService } from 'src/app/util/util.service';
styleUrls: ['./settings-roles.component.scss'],
})
export class SettingsRolesComponent implements OnInit, AfterViewInit {
private readonly logger = new Logger("SettingsRolesComponent");
public readonly displayedColumns: string[] = [
'name',
'permissions',
@@ -40,7 +43,7 @@ export class SettingsRolesComponent implements OnInit, AfterViewInit {
) {}
ngOnInit(): void {
this.loadRoles().catch(console.error);
this.loadRoles().catch(this.logger.error);
}
ngAfterViewInit() {

View File

@@ -9,6 +9,7 @@ import { UpdateUserControl } from 'src/app/models/forms/updateuser.control';
import { RolesService } from 'src/app/services/api/roles.service';
import { StaticInfoService } from 'src/app/services/api/static-info.service';
import { UserManageService } from 'src/app/services/api/usermanage.service';
import { Logger } from 'src/app/services/logger/logger.service';
import { UtilService } from 'src/app/util/util.service';
enum EditMode {
@@ -22,6 +23,8 @@ enum EditMode {
styleUrls: ['./settings-users-edit.component.scss'],
})
export class SettingsUsersEditComponent implements OnInit {
private readonly logger = new Logger('SettingsUsersEditComponent');
private ImmutableUsersList: string[] = [];
private mode: EditMode = EditMode.edit;
@@ -53,7 +56,7 @@ export class SettingsUsersEditComponent implements OnInit {
this.initUser(),
this.initRoles(),
this.initImmutableUsersList(),
]).catch(console.error);
]).catch(this.logger.error);
}
private async initUser() {
@@ -108,7 +111,7 @@ export class SettingsUsersEditComponent implements OnInit {
for (const role of this.model.selectedRoles) {
const fullRole = this.allFullRoles.find((r) => r.name === role);
if (!fullRole) {
console.warn(`Role ${role} not found`);
this.logger.warn(`Role ${role} not found`);
continue;
}

View File

@@ -8,6 +8,7 @@ import { BehaviorSubject, Subject, throttleTime } from 'rxjs';
import { SnackBarType } from 'src/app/models/dto/snack-bar-type.dto';
import { StaticInfoService } from 'src/app/services/api/static-info.service';
import { UserManageService } from 'src/app/services/api/usermanage.service';
import { Logger } from 'src/app/services/logger/logger.service';
import { UtilService } from 'src/app/util/util.service';
@Component({
@@ -15,6 +16,8 @@ import { UtilService } from 'src/app/util/util.service';
styleUrls: ['./settings-users.component.scss'],
})
export class SettingsUsersComponent implements OnInit {
private readonly logger = new Logger('SettingsUsersComponent');
private UndeletableUsersList: string[] = [];
public readonly displayedColumns: string[] = ['username', 'roles', 'actions'];
@@ -40,7 +43,7 @@ export class SettingsUsersComponent implements OnInit {
Promise.all([
this.fetchUsers(this.startingPageSize, 0),
this.initSpecialUsers(),
]).catch(console.error);
]).catch(this.logger.error);
}
public addUser() {

View File

@@ -7,6 +7,7 @@ import { SnackBarType } from 'src/app/models/dto/snack-bar-type.dto';
import { UserPassModel } from 'src/app/models/forms-dto/userpass.dto';
import { PermissionService } from 'src/app/services/api/permission.service';
import { UserService } from 'src/app/services/api/user.service';
import { Logger } from 'src/app/services/logger/logger.service';
import { UtilService } from 'src/app/util/util.service';
import { LoginControl } from '../../../models/forms/login.control';
@@ -15,6 +16,8 @@ import { LoginControl } from '../../../models/forms/login.control';
styleUrls: ['./login.component.scss'],
})
export class LoginComponent implements OnInit {
private readonly logger = new Logger('LoginComponent');
showRegister = false;
model = new LoginControl();
@@ -51,7 +54,7 @@ export class LoginComponent implements OnInit {
const user = await this.userService.login(data.username, data.password);
if (HasFailed(user)) {
console.warn(user);
this.logger.warn(user.getReason());
this.utilService.showSnackBar(
'Login failed, please try again',
SnackBarType.Error

View File

@@ -7,6 +7,7 @@ import { SnackBarType } from 'src/app/models/dto/snack-bar-type.dto';
import { UserPassModel } from 'src/app/models/forms-dto/userpass.dto';
import { PermissionService } from 'src/app/services/api/permission.service';
import { UserService } from 'src/app/services/api/user.service';
import { Logger } from 'src/app/services/logger/logger.service';
import { UtilService } from 'src/app/util/util.service';
import { RegisterControl } from '../../../models/forms/register.control';
@@ -15,6 +16,8 @@ import { RegisterControl } from '../../../models/forms/register.control';
styleUrls: ['./register.component.scss'],
})
export class RegisterComponent implements OnInit {
private readonly logger = new Logger('RegisterComponent');
showLogin = false;
model = new RegisterControl();
@@ -51,7 +54,7 @@ export class RegisterComponent implements OnInit {
const user = await this.userService.register(data.username, data.password);
if (HasFailed(user)) {
console.warn(user);
this.logger.warn(user.getReason());
this.utilService.showSnackBar(
'Register failed, please try again',
SnackBarType.Error
@@ -62,7 +65,7 @@ export class RegisterComponent implements OnInit {
if (!this.userService.isLoggedIn) {
const loginResult = this.userService.login(data.username, data.password);
if (HasFailed(loginResult)) {
console.warn(loginResult);
this.logger.warn(loginResult.getReason());
this.utilService.showSnackBar(
'Failed to login after register',
SnackBarType.Error

View File

@@ -9,6 +9,7 @@ import { strictValidate } from 'picsur-shared/dist/util/validate';
import { Subject } from 'rxjs';
import { ApiError } from 'src/app/models/dto/api-error.dto';
import { MultiPartRequest } from '../../models/dto/multi-part-request.dto';
import { Logger } from '../logger/logger.service';
import { KeyService } from '../storage/key.service';
/*
@@ -19,7 +20,7 @@ import { KeyService } from '../storage/key.service';
providedIn: 'root',
})
export class ApiService {
private readonly logger = console;
private readonly logger = new Logger('ApiService');
private errorSubject = new Subject<ApiError>();

View File

@@ -4,13 +4,14 @@ import { InfoResponse } from 'picsur-shared/dist/dto/api/info.dto';
import { AsyncFailable, HasFailed } from 'picsur-shared/dist/types';
import { BehaviorSubject } from 'rxjs';
import { ServerInfo } from '../../models/dto/server-info.dto';
import { Logger } from '../logger/logger.service';
import { ApiService } from './api.service';
@Injectable({
providedIn: 'root',
})
export class InfoService {
private readonly logger = console;
private readonly logger = new Logger('InfoService');
public get live() {
return this.infoSubject;

View File

@@ -3,13 +3,14 @@ import { AutoUnsubscribe } from 'ngx-auto-unsubscribe-decorator';
import { UserMePermissionsResponse } from 'picsur-shared/dist/dto/api/user.dto';
import { AsyncFailable, HasFailed } from 'picsur-shared/dist/types';
import { BehaviorSubject, filter, map, Observable, take } from 'rxjs';
import { Logger } from '../logger/logger.service';
import { ApiService } from './api.service';
import { StaticInfoService } from './static-info.service';
import { UserService } from './user.service';
@Injectable({ providedIn: 'root' })
export class PermissionService {
private readonly logger = console;
private readonly logger = new Logger('PermissionService');
private allPermissions: string[] = [];
private permissionsSubject = new BehaviorSubject<string[] | null>(null);

View File

@@ -13,6 +13,7 @@ import { AsyncFailable, Fail, HasFailed } from 'picsur-shared/dist/types';
import { BehaviorSubject } from 'rxjs';
import { SnackBarType } from 'src/app/models/dto/snack-bar-type.dto';
import { UtilService } from 'src/app/util/util.service';
import { Logger } from '../logger/logger.service';
import { ApiService } from './api.service';
import { PermissionService } from './permission.service';
@@ -20,6 +21,8 @@ import { PermissionService } from './permission.service';
providedIn: 'root',
})
export class SysprefService {
private readonly logger = new Logger('SysprefService');
private hasPermission = false;
private sysprefObservable = new BehaviorSubject<SysPreferenceBaseResponse[]>(
@@ -40,7 +43,7 @@ export class SysprefService {
private utilService: UtilService
) {
this.subscribePermissions();
this.init().catch(console.error);
this.init().catch(this.logger.error);
}
private async init() {

View File

@@ -13,6 +13,7 @@ import { EUser } from 'picsur-shared/dist/entities/user.entity';
import { AsyncFailable, Fail, HasFailed } from 'picsur-shared/dist/types';
import { strictValidate } from 'picsur-shared/dist/util/validate';
import { BehaviorSubject } from 'rxjs';
import { Logger } from '../logger/logger.service';
import { KeyService } from '../storage/key.service';
import { ApiService } from './api.service';
@@ -20,7 +21,7 @@ import { ApiService } from './api.service';
providedIn: 'root',
})
export class UserService {
private readonly logger = console;
private readonly logger = new Logger('UserService');
private userSubject = new BehaviorSubject<EUser | null>(null);
public get live() {

View File

@@ -2,12 +2,15 @@ import { Injectable } from '@angular/core';
import { AutoUnsubscribe } from 'ngx-auto-unsubscribe-decorator';
import { SnackBarType } from '../models/dto/snack-bar-type.dto';
import { ApiService } from '../services/api/api.service';
import { Logger } from '../services/logger/logger.service';
import { UtilService } from './util.service';
@Injectable({
providedIn: 'root',
})
export class ApiErrorService {
private readonly logger = new Logger('ApiErrorService');
constructor(
private apiSerivce: ApiService,
private utilService: UtilService
@@ -26,7 +29,7 @@ export class ApiErrorService {
this.utilService.showSnackBar('Network Error', SnackBarType.Error);
}
console.warn(error.error);
this.logger.warn(error.error);
});
}
}

View File

@@ -3,7 +3,6 @@ import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import Environment from './environments/environment';
if (Environment.production) {
enableProdMode();
}

View File

@@ -19,8 +19,6 @@ export type Failable<T> = T | Failure;
export type AsyncFailable<T> = Promise<Failable<T>>;
// TODO: prevent promise from being allowed in these 2 functions
export function HasFailed<T>(failable: Failable<T>): failable is Failure {
if (failable instanceof Promise) throw new Error('Invalid use of HasFailed');
return failable instanceof Failure;