diff options
author | Gunther6070 <haydenhartman10@yahoo.com> | 2025-03-17 23:12:49 -0400 |
---|---|---|
committer | Gunther6070 <haydenhartman10@yahoo.com> | 2025-03-17 23:12:49 -0400 |
commit | 5b6c20479fbb6ed0cabbbc88b42280c5a7dbd22c (patch) | |
tree | 16f93b3ce3b40de1e550f3824f60ca3aac632265 /ufund-ui/src/app/components/login/login.component.ts | |
parent | 7a5c5073e9e410b3ccc3ab7902a0d6f558277c7d (diff) | |
parent | 2b847078b7af4ade35461b8af52352bc88994be3 (diff) | |
download | JellySolutions-5b6c20479fbb6ed0cabbbc88b42280c5a7dbd22c.tar.gz JellySolutions-5b6c20479fbb6ed0cabbbc88b42280c5a7dbd22c.tar.bz2 JellySolutions-5b6c20479fbb6ed0cabbbc88b42280c5a7dbd22c.zip |
Merge branch 'main' into funding_basket
Diffstat (limited to '')
-rw-r--r-- | ufund-ui/src/app/components/login/login.component.ts | 93 |
1 files changed, 91 insertions, 2 deletions
diff --git a/ufund-ui/src/app/components/login/login.component.ts b/ufund-ui/src/app/components/login/login.component.ts index efb8a58..9d806f5 100644 --- a/ufund-ui/src/app/components/login/login.component.ts +++ b/ufund-ui/src/app/components/login/login.component.ts @@ -1,4 +1,7 @@ -import { Component } from '@angular/core'; +import {Component, OnInit} from '@angular/core' +import {UsersService} from '../../services/users.service'; +import {ActivatedRoute, Router} from '@angular/router'; +import {BehaviorSubject} from 'rxjs'; @Component({ selector: 'app-login', @@ -6,6 +9,92 @@ import { Component } from '@angular/core'; templateUrl: './login.component.html', styleUrl: './login.component.css' }) -export class LoginComponent { +export class LoginComponent implements OnInit { + protected next?: string | null; + protected statusText = new BehaviorSubject("") + + constructor( + protected usersService: UsersService, + protected router: Router, + private route: ActivatedRoute + ) {} + + ngOnInit() { + this.next = this.route.snapshot.queryParamMap.get('redir') + } + + login(username: string | null, password: string | null) { + let next = this.next || '/dashboard' + console.log(`attempting to log in with ${username} ${password}`) + if (!username || !password) { + return; + } + + this.usersService.login(username, password).then(() => { + this.router.navigate([next]); + }).catch(ex => { + this.statusText.next("Unable to login: " + friendlyHttpStatus[ex.status]) + console.log(ex) + }) + } + + signup(username: string | null, password: string | null) { + console.log(`attempting to sign up with ${username} ${password}`) + if (!username || !password) { + return; + } + + this.usersService.createUser(username, password).then(() => { + this.statusText.next("Account created, click login.") + }).catch(ex => { + this.statusText.next("Unable to create account: " + friendlyHttpStatus[ex.status]) + console.log(ex) + }) + } } + +// temporary +let friendlyHttpStatus: {[key: number]: string} = { + 200: 'OK', + 201: 'Created', + 202: 'Accepted', + 203: 'Non-Authoritative Information', + 204: 'No Content', + 205: 'Reset Content', + 206: 'Partial Content', + 300: 'Multiple Choices', + 301: 'Moved Permanently', + 302: 'Found', + 303: 'See Other', + 304: 'Not Modified', + 305: 'Use Proxy', + 306: 'Unused', + 307: 'Temporary Redirect', + 400: 'Bad Request', + 401: 'Unauthorized', + 402: 'Payment Required', + 403: 'Forbidden', + 404: 'Not Found', + 405: 'Method Not Allowed', + 406: 'Not Acceptable', + 407: 'Proxy Authentication Required', + 408: 'Request Timeout', + 409: 'Conflict', + 410: 'Gone', + 411: 'Length Required', + 412: 'Precondition Required', + 413: 'Request Entry Too Large', + 414: 'Request-URI Too Long', + 415: 'Unsupported Media Type', + 416: 'Requested Range Not Satisfiable', + 417: 'Expectation Failed', + 418: 'I\'m a teapot', + 429: 'Too Many Requests', + 500: 'Internal Server Error', + 501: 'Not Implemented', + 502: 'Bad Gateway', + 503: 'Service Unavailable', + 504: 'Gateway Timeout', + 505: 'HTTP Version Not Supported', +}; |