@@ -16,6 +16,7 @@ import { SettingsComponent } from './dashboard/settings/settings.component'; | |||||
import { PartnerProfileService } from './services/partner-profile.service'; | import { PartnerProfileService } from './services/partner-profile.service'; | ||||
import { PartnerDetailsComponent } from './dashboard/partner-details/partner-details.component'; | import { PartnerDetailsComponent } from './dashboard/partner-details/partner-details.component'; | ||||
import { FormsModule } from '@angular/forms'; | import { FormsModule } from '@angular/forms'; | ||||
import { AuthService } from './services/auth.service'; | |||||
@NgModule({ | @NgModule({ | ||||
declarations: [ | declarations: [ | ||||
@@ -40,6 +41,7 @@ import { FormsModule } from '@angular/forms'; | |||||
], | ], | ||||
providers: [ | providers: [ | ||||
PartnerProfileService, | PartnerProfileService, | ||||
AuthService | |||||
], | ], | ||||
bootstrap: [AppComponent] | bootstrap: [AppComponent] | ||||
}) | }) | ||||
@@ -19,6 +19,7 @@ export class TableComponent implements OnInit { | |||||
ngOnInit(): void { | ngOnInit(): void { | ||||
this.partnerProfileService.getPartnersData().then((data: any) => { | this.partnerProfileService.getPartnersData().then((data: any) => { | ||||
this.userData = data; | this.userData = data; | ||||
console.log(data); | |||||
}, (e) => console.log(e)); | }, (e) => console.log(e)); | ||||
} | } | ||||
@@ -10,19 +10,19 @@ | |||||
<h5> Log In </h5> | <h5> Log In </h5> | ||||
<div class="input-holder"> | <div class="input-holder"> | ||||
<input type="text"> | |||||
<input type="text" [(ngModel)]="credentails.username"> | |||||
<label> Username </label> | <label> Username </label> | ||||
</div> | </div> | ||||
<div class="input-holder"> | <div class="input-holder"> | ||||
<input type="password"> | |||||
<input type="password" [(ngModel)]="credentails.password"> | |||||
<label> Password </label> | <label> Password </label> | ||||
</div> | </div> | ||||
<div class="action-buttons"> | <div class="action-buttons"> | ||||
<a href="#"> Forgot Password? </a> | <a href="#"> Forgot Password? </a> | ||||
<button class="button" (click)="authenticateUser()"> | |||||
<button class="button" (click)="login()"> | |||||
Login | Login | ||||
</button> | </button> | ||||
</div> | </div> | ||||
@@ -1,5 +1,6 @@ | |||||
import { Component, OnInit } from '@angular/core'; | import { Component, OnInit } from '@angular/core'; | ||||
import { Router } from '@angular/router'; | import { Router } from '@angular/router'; | ||||
import { AuthService } from '../services/auth.service'; | |||||
@Component({ | @Component({ | ||||
selector: 'app-login', | selector: 'app-login', | ||||
@@ -7,16 +8,27 @@ import { Router } from '@angular/router'; | |||||
styleUrls: ['./login.component.scss'] | styleUrls: ['./login.component.scss'] | ||||
}) | }) | ||||
export class LoginComponent implements OnInit { | export class LoginComponent implements OnInit { | ||||
credentails: { | |||||
username: string, | |||||
password: string, | |||||
} = { | |||||
username: 'admin@catalysts.org', | |||||
password: '1234' | |||||
}; | |||||
constructor( | constructor( | ||||
private router: Router | |||||
private router: Router, | |||||
private authService: AuthService | |||||
) { } | ) { } | ||||
ngOnInit(): void { | ngOnInit(): void { | ||||
} | } | ||||
authenticateUser() { | |||||
this.router.navigate(['/dashboard/analytics']); | |||||
login() { | |||||
this.authService.authenticateUser(this.credentails).then((data: any) => { | |||||
localStorage.setItem('token', data.token); | |||||
this.router.navigate(['/dashboard/analytics']); | |||||
}, (e) => console.log(e)); | |||||
} | } | ||||
} | } |
@@ -0,0 +1,16 @@ | |||||
import { TestBed } from '@angular/core/testing'; | |||||
import { AuthService } from './auth.service'; | |||||
describe('AuthService', () => { | |||||
let service: AuthService; | |||||
beforeEach(() => { | |||||
TestBed.configureTestingModule({}); | |||||
service = TestBed.inject(AuthService); | |||||
}); | |||||
it('should be created', () => { | |||||
expect(service).toBeTruthy(); | |||||
}); | |||||
}); |
@@ -0,0 +1,30 @@ | |||||
import { Injectable } from '@angular/core'; | |||||
import { HttpClient, HttpHeaders } from '@angular/common/http'; | |||||
import { lastValueFrom } from 'rxjs'; | |||||
import { BASE_URL } from './partner-profile.service'; | |||||
@Injectable({ | |||||
providedIn: 'root' | |||||
}) | |||||
export class AuthService { | |||||
constructor( | |||||
private http: HttpClient | |||||
) { } | |||||
async authenticateUser(credentials: { | |||||
username: string, | |||||
password: string, | |||||
}) { | |||||
const body = `&username=${encodeURIComponent(credentials.username)}&password=${encodeURIComponent(credentials.password)}`; | |||||
const headers = new HttpHeaders({ | |||||
Accept: 'text/html, application/xhtml+xml, */*', | |||||
'Content-Type': 'application/x-www-form-urlencoded', | |||||
}); | |||||
const httpOptions = { | |||||
headers, | |||||
responseType: 'text' as 'json', | |||||
}; | |||||
return lastValueFrom(this.http.post(BASE_URL + '/api-auth/', body, httpOptions)); | |||||
} | |||||
} |
@@ -2,6 +2,10 @@ import { Injectable } from '@angular/core'; | |||||
import { HttpClient } from '@angular/common/http'; | import { HttpClient } from '@angular/common/http'; | ||||
import { lastValueFrom } from 'rxjs'; | import { lastValueFrom } from 'rxjs'; | ||||
export const BASE_URL = 'http://localhost:8001'; | |||||
// http://localhost:8001 | |||||
// http://143.110.247.94 | |||||
@Injectable({ | @Injectable({ | ||||
providedIn: 'root' | providedIn: 'root' | ||||
}) | }) | ||||
@@ -12,7 +16,7 @@ export class PartnerProfileService { | |||||
) { } | ) { } | ||||
async getPartnersData() { | async getPartnersData() { | ||||
return lastValueFrom(this.http.get('http://143.110.247.94/user-data/?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MjAyY2I3YmQwMWMxMzRhYjdjZmViOGUiLCJleHAiOjE2NDk0NjI0MDAsImlhdCI6MTY0NDM1MTEwMH0.MghrYB51zg5Qk2fk1yx9NO1nPLpdhwMK69XIuFrmrAY')); | |||||
return lastValueFrom(this.http.get(BASE_URL + '/user-data/?token=' + localStorage.getItem('token'))); | |||||
} | } | ||||
} | } |