Skip to content

Commit 81e4ce6

Browse files
committed
feat(package): integration of the feedback mechanism
1 parent aab6d3c commit 81e4ce6

8 files changed

+60
-22
lines changed

Diff for: src/auth/module/components/auth/auth.component.html

+2
Original file line numberDiff line numberDiff line change
@@ -300,4 +300,6 @@
300300

301301
</ngb-tab>
302302
</ngb-tabset>
303+
303304
<ngb-auth-firebaseui-providers class="mt-2"></ngb-auth-firebaseui-providers>
305+
<ngb-alerts-container class="mt-2" [alerts]="alertService.alerts"></ngb-alerts-container>

Diff for: src/auth/module/components/auth/auth.component.scss

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
:host{
2+
display: block;
3+
}
4+
15
.mat-card {
26
margin: 2rem;
37
}

Diff for: src/auth/module/components/auth/auth.component.spec.ts

+13-4
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
11
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
2+
import {HttpClientTestingModule} from '@angular/common/http/testing';
23
import {DebugElement, EventEmitter} from '@angular/core';
34

45
import {AngularFireModule} from 'angularfire2';
56
import {AngularFireAuth} from 'angularfire2/auth';
67
import {BehaviorSubject} from 'rxjs/internal/BehaviorSubject';
78
import {AngularFirestore} from 'angularfire2/firestore';
8-
import {HttpClientTestingModule} from '@angular/common/http/testing';
99
import {
10+
AlertService,
1011
AuthComponent,
1112
AuthProcessService,
1213
AuthProvidersComponent,
1314
EmailConfirmationComponent,
14-
FirestoreSyncService,
15+
FirestoreSyncService, IAlert,
1516
ProgressBarComponent
1617
} from '../../../..';
1718
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
1819
import {NgbModule} from '@ng-bootstrap/ng-bootstrap';
20+
import {NgbAlertsContainerComponent} from '../alerts-container/ngb-alerts-container.component';
1921

2022
describe('AuthProvidersComponent', function () {
2123
let de: DebugElement;
@@ -25,7 +27,7 @@ describe('AuthProvidersComponent', function () {
2527
let authProcessServicePartial: Partial<AuthProcessService>;
2628

2729
authProcessServicePartial = {
28-
onErrorEmitter: new EventEmitter<any>()
30+
onErrorEmitter: new EventEmitter<any>(),
2931
};
3032

3133
const credentialsMock = {
@@ -85,6 +87,11 @@ describe('AuthProvidersComponent', function () {
8587
})
8688
});
8789

90+
const alertServicePartial: Partial<AlertService> = {
91+
alerts: [],
92+
onNewAlert: new EventEmitter<IAlert>(),
93+
};
94+
8895
TestBed.configureTestingModule({
8996
imports:
9097
[
@@ -98,12 +105,14 @@ describe('AuthProvidersComponent', function () {
98105
AuthComponent,
99106
AuthProvidersComponent,
100107
EmailConfirmationComponent,
101-
ProgressBarComponent
108+
ProgressBarComponent,
109+
NgbAlertsContainerComponent
102110
],
103111
providers: [
104112
HttpClientTestingModule,
105113
FirestoreSyncService,
106114
AngularFireModule,
115+
{provide: AlertService, useValue: alertServicePartial},
107116
{provide: AngularFirestore, useValue: FirestoreStub},
108117
{provide: AngularFireAuth, useValue: angularFireAuthStub},
109118
{provide: AuthProcessService, useValue: authProcessServicePartial}]

Diff for: src/auth/module/components/auth/auth.component.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {AuthProcessService, AuthProvider} from '../../services/auth-process.serv
55
import {isPlatformBrowser} from '@angular/common';
66
import {Subscription} from 'rxjs/internal/Subscription';
77
import {NgbTabset} from '@ng-bootstrap/ng-bootstrap';
8+
import {AlertService} from '../../services/alert.service';
89

910

1011
export const EMAIL_REGEX = new RegExp(['^(([^<>()[\\]\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\.,;:\\s@\"]+)*)',
@@ -62,7 +63,8 @@ export class AuthComponent implements OnInit, OnDestroy {
6263

6364
constructor(@Inject(PLATFORM_ID) private platformId: Object,
6465
public auth: AngularFireAuth,
65-
public authProcess: AuthProcessService) {
66+
public authProcess: AuthProcessService,
67+
public alertService: AlertService) {
6668

6769
this.onSuccess = authProcess.onSuccessEmitter;
6870
this.onError = authProcess.onErrorEmitter;
@@ -89,7 +91,6 @@ export class AuthComponent implements OnInit, OnDestroy {
8991
}
9092

9193
public resetPassword() {
92-
console.log('PasswordResetEmail sent');
9394
this.authProcess.resetPassword(this.resetPasswordEmailFormControl.value)
9495
.then(() => this.passReset = true);
9596
}

Diff for: src/auth/module/components/email-confirmation/email-confirmation.component.scss

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
:host{
2+
display: block;
3+
}
4+
15
.material-icons {
26
font-size: 4rem;
37
}

Diff for: src/auth/module/ngb-auth-firebase-u-i.module.ts

+12-3
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,28 @@ import {NgbModule} from '@ng-bootstrap/ng-bootstrap';
1414
import {EmailConfirmationComponent} from './components/email-confirmation/email-confirmation.component';
1515
import {ProgressBarComponent} from './components/progress-bar/progress-bar.component';
1616
import {AuthProvidersComponent} from './components/providers/auth.providers.component';
17+
import {AlertService} from './services/alert.service';
18+
import {NgbAlertsContainerComponent} from './components/alerts-container/ngb-alerts-container.component';
1719

1820
// Export module's public API
1921
// components
2022
export {AuthComponent} from './components/auth/auth.component';
2123
export {EmailConfirmationComponent} from './components/email-confirmation/email-confirmation.component';
2224
export {ProgressBarComponent} from './components/progress-bar/progress-bar.component';
2325
export {AuthProvidersComponent} from './components/providers/auth.providers.component';
26+
export {NgbAlertsContainerComponent} from './components/alerts-container/ngb-alerts-container.component';
2427

2528
// services
2629
export {AuthProcessService, AuthProvider} from './services/auth-process.service';
2730
export {FirestoreSyncService} from './services/firestore-sync.service';
31+
export {AlertService} from './services/alert.service';
2832

2933
// interfaces
3034
export {NgBootstrapAuthFirebaseUIConfig} from './interfaces/config.interface';
35+
export {IAlert} from './interfaces/ialert.interface';
3136

32-
export const NgBootstrapAuthFirebaseUIConfigToken = new InjectionToken<NgBootstrapAuthFirebaseUIConfig>('NgBootstrapAuthFirebaseUIConfig');
37+
export const NgBootstrapAuthFirebaseUIConfigToken =
38+
new InjectionToken<NgBootstrapAuthFirebaseUIConfig>('NgBootstrapAuthFirebaseUIConfig');
3339

3440
@NgModule({
3541
imports: [
@@ -46,6 +52,7 @@ export const NgBootstrapAuthFirebaseUIConfigToken = new InjectionToken<NgBootstr
4652
AuthComponent,
4753
AuthProvidersComponent,
4854
EmailConfirmationComponent,
55+
NgbAlertsContainerComponent,
4956
ProgressBarComponent,
5057
AngularFireAuthModule,
5158
AngularFirestoreModule
@@ -55,7 +62,8 @@ export const NgBootstrapAuthFirebaseUIConfigToken = new InjectionToken<NgBootstr
5562
AuthComponent,
5663
AuthProvidersComponent,
5764
EmailConfirmationComponent,
58-
ProgressBarComponent
65+
ProgressBarComponent,
66+
NgbAlertsContainerComponent
5967
]
6068
})
6169
export class NgbAuthFirebaseUIModule {
@@ -79,7 +87,8 @@ export class NgbAuthFirebaseUIModule {
7987
useValue: config
8088
},
8189
AuthProcessService,
82-
FirestoreSyncService
90+
FirestoreSyncService,
91+
AlertService
8392
],
8493
};
8594
}

Diff for: src/auth/module/services/auth-process.service.ts

+22-12
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import FacebookAuthProvider = firebase.auth.FacebookAuthProvider;
1313
import TwitterAuthProvider = firebase.auth.TwitterAuthProvider;
1414
import UserCredential = firebase.auth.UserCredential;
1515
import GithubAuthProvider = firebase.auth.GithubAuthProvider;
16+
import {AlertService} from './alert.service';
1617

1718
export enum AuthProvider {
1819
ALL = 'all',
@@ -35,6 +36,7 @@ export class AuthProcessService implements ISignInProcess, ISignUpProcess {
3536
emailToConfirm: string;
3637

3738
constructor(public auth: AngularFireAuth,
39+
public alertService: AlertService,
3840
private _fireStoreService: FirestoreSyncService) {
3941
}
4042

@@ -49,7 +51,6 @@ export class AuthProcessService implements ISignInProcess, ISignUpProcess {
4951
return this.auth.auth.sendPasswordResetEmail(email)
5052
.then(() => {
5153
this.isLoading = false;
52-
console.log('email sent');
5354
return;
5455
})
5556
.catch((error) => {
@@ -106,7 +107,12 @@ export class AuthProcessService implements ISignInProcess, ISignUpProcess {
106107
} catch (err) {
107108
this.handleError(err);
108109
console.error(err);
109-
// this._snackBar.open(err.message, 'OK', {duration: 5000});
110+
this.alertService.onNewAlert.emit(
111+
{
112+
id: new Date().getTime(),
113+
message: err.message,
114+
type: 'danger'
115+
});
110116
this.onErrorEmitter.next(err);
111117
} finally {
112118
this.isLoading = false;
@@ -127,7 +133,7 @@ export class AuthProcessService implements ISignInProcess, ISignUpProcess {
127133
this.isLoading = true;
128134
const userCredential: UserCredential = await this.auth.auth.createUserWithEmailAndPassword(email, password);
129135
const user = userCredential.user;
130-
console.log('onsignUp the user = ', user);
136+
131137
await this._fireStoreService
132138
.getUserDocRefByUID(user.uid)
133139
.set({
@@ -140,7 +146,7 @@ export class AuthProcessService implements ISignInProcess, ISignUpProcess {
140146
await user.sendEmailVerification();
141147
await this.updateProfile(name, user.photoURL);
142148
this.emailConfirmationSent = true;
143-
console.log('emailConfirmationSent = ', this.emailConfirmationSent);
149+
144150
this.emailToConfirm = email;
145151

146152
await this.handleSuccess(userCredential);
@@ -203,21 +209,25 @@ export class AuthProcessService implements ISignInProcess, ISignUpProcess {
203209
}
204210

205211
async handleSuccess(userCredential: UserCredential) {
206-
console.log('sign in result = ', userCredential);
207212

208213
await this._fireStoreService.updateUserData(this.parseUserInfo(userCredential.user));
209214

210-
// if (this.config.toastMessageOnAuthSuccess) {
211-
// this._snackBar.open(`Hallo ${userCredential.user.displayName ? userCredential.user.displayName : ''}!`,
212-
// 'OK', {duration: 5000});
213-
// }
215+
this.alertService.onNewAlert.emit(
216+
{
217+
id: new Date().getTime(),
218+
message: `Hallo ${userCredential.user.displayName ? userCredential.user.displayName : ''}!`,
219+
type: 'success'
220+
});
214221
this.onSuccessEmitter.next(userCredential.user);
215222
}
216223

217224
handleError(error: any) {
218-
// if (this.config.toastMessageOnAuthError) {
219-
// this._snackBar.open(error.message, 'OK', {duration: 5000});
220-
// }
225+
this.alertService.onNewAlert.emit(
226+
{
227+
id: new Date().getTime(),
228+
message: error.message,
229+
type: 'danger'
230+
});
221231
console.error(error);
222232
this.onErrorEmitter.next(error);
223233
}

Diff for: src/auth/module/services/firestore-sync.service.ts

-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ export class FirestoreSyncService {
3434

3535

3636
public updateUserData(user: UserInfo): Promise<any> {
37-
console.log('on updateUserData for the user -> ', user);
3837
// Sets user$ data to firestore on login
3938
const userRef: AngularFirestoreDocument<UserInfo> = this.getUserDocRefByUID(user.uid);
4039
const data: UserInfo = {

0 commit comments

Comments
 (0)