diff --git a/frontend/src/app/Helpers/helper.service.ts b/frontend/src/app/Helpers/helper.service.ts index f3c21a1..52e9c6a 100644 --- a/frontend/src/app/Helpers/helper.service.ts +++ b/frontend/src/app/Helpers/helper.service.ts @@ -9,12 +9,17 @@ export class HelperService { constructor(private botService: BotService) {} /** + * Function to delay loading of webpage for a smoother user experience * @param {number} ms */ delay(ms: number) { return new Promise((resolve) => setTimeout(resolve, ms)); } + /** + * Function to format share data + * @returns Share + */ formatShareData(): Share[] { var shares: Share[] = []; this.botService.getSymbols().subscribe((result) => { @@ -27,7 +32,10 @@ export class HelperService { }); return shares; } - + /** + * @returns Keyword + * Function to format keyword data + */ formatKeywordsData(): Keyword[] { var keywords: Keyword[] = []; this.botService.getKeywords().subscribe((result) => { diff --git a/frontend/src/app/Services/auth.service.ts b/frontend/src/app/Services/auth.service.ts index c011e2c..9ab2ff1 100644 --- a/frontend/src/app/Services/auth.service.ts +++ b/frontend/src/app/Services/auth.service.ts @@ -14,6 +14,7 @@ export class AuthService { constructor(private http: HttpClient) {} /** + * Function to login user * @param {string} email * @param {string} password * @returns Observable @@ -26,6 +27,7 @@ export class AuthService { } /** + * Function to register user * @param {string} email * @param {string} username * @param {string} password diff --git a/frontend/src/app/Services/bot.service.ts b/frontend/src/app/Services/bot.service.ts index 403e8d4..954cdc6 100644 --- a/frontend/src/app/Services/bot.service.ts +++ b/frontend/src/app/Services/bot.service.ts @@ -15,6 +15,7 @@ export class BotService { ) {} /** + * Function to get all keywords * @returns Observable */ public getKeywords(): Observable { @@ -28,6 +29,7 @@ export class BotService { } /** + * Function to create a keyword * @param {string} keyword * @returns Observable */ @@ -47,6 +49,7 @@ export class BotService { } /** + * Function to delete a keyword * @param {string} keyword * @returns Observable */ @@ -63,6 +66,7 @@ export class BotService { } /** + * Function to get all shares * @returns Observable */ public getSymbols(): Observable { @@ -76,6 +80,7 @@ export class BotService { } /** + * Function to create a share * @param {string} keyword * @returns Observable */ @@ -96,6 +101,7 @@ export class BotService { } /** + * Function to delete a share * @param {string} symbol * @returns Observable */ diff --git a/frontend/src/app/Services/data.service.ts b/frontend/src/app/Services/data.service.ts index 8a93070..c97439a 100644 --- a/frontend/src/app/Services/data.service.ts +++ b/frontend/src/app/Services/data.service.ts @@ -17,6 +17,7 @@ export class DataService { ) {} /** + * Function to get all portfolio data * @returns Observable */ public getStockData(): Observable { @@ -30,6 +31,7 @@ export class DataService { } /** + * Function to get all transaction data * @returns Observable */ public getTransactionData(): Observable { @@ -43,6 +45,7 @@ export class DataService { } /** + * Function to create a transaction * @param {string} symbol * @param {Date} time * @param {number} count @@ -77,6 +80,7 @@ export class DataService { } /** + * Function to get all keywords * @returns Observable */ public getKeywords(): Observable { diff --git a/frontend/src/app/Services/profile.service.ts b/frontend/src/app/Services/profile.service.ts index 87cf603..2645ad5 100644 --- a/frontend/src/app/Services/profile.service.ts +++ b/frontend/src/app/Services/profile.service.ts @@ -15,6 +15,7 @@ export class ProfileService { ) {} /** + * Function to get all Userdata * @returns Observable */ public getUserData(): Observable { @@ -28,6 +29,7 @@ export class ProfileService { } /** + * Function to update user profile * @param {string} username * @param {number} password * @returns Observable @@ -49,6 +51,7 @@ export class ProfileService { } /** + * Function to add a telegram id * @param {string} telegramUserID * @returns Observable */ @@ -68,6 +71,7 @@ export class ProfileService { } /** + * Function to add a cron string for automatic updates * @param {string} cronString * @returns Observable */ diff --git a/frontend/src/app/Services/token.service.ts b/frontend/src/app/Services/token.service.ts index 8460ed6..e94e6c4 100644 --- a/frontend/src/app/Services/token.service.ts +++ b/frontend/src/app/Services/token.service.ts @@ -8,6 +8,7 @@ export class TokenStorageService { constructor() {} /** + * Function to sign out user * @returns void */ signOut(): void { @@ -15,6 +16,7 @@ export class TokenStorageService { } /** + * Function to save token * @param {string} token * @returns void */ @@ -24,6 +26,7 @@ export class TokenStorageService { } /** + * Function to get token * @returns string */ public getToken(): string | null { @@ -31,6 +34,7 @@ export class TokenStorageService { } /** + * Function to save user * @param {any} user * @returns void */ @@ -40,6 +44,7 @@ export class TokenStorageService { } /** + * Function to get user * @returns any */ public getUser(): any { diff --git a/frontend/src/app/Views/dashboard/dashboard.component.ts b/frontend/src/app/Views/dashboard/dashboard.component.ts index 0d1238b..23d514d 100644 --- a/frontend/src/app/Views/dashboard/dashboard.component.ts +++ b/frontend/src/app/Views/dashboard/dashboard.component.ts @@ -41,6 +41,12 @@ export class DashboardComponent implements OnInit { depotCost: number = 0; profit: number = 0; + comment: string = ''; + isin: string = ''; + time: Date = new Date(); + count: number = 0.0; + price: number = 0.0; + getTransactions() { var TRANSACTION_DATA: TransactionData[] = []; this.dataService.getTransactionData().subscribe((response: any) => { @@ -64,6 +70,9 @@ export class DashboardComponent implements OnInit { } ngOnInit() { + /** + * Function gets the stock data and pushes it in the temporary object array + */ this.dataService.getStockData().subscribe((response: any) => { var data = JSON.parse(response); console.log(data); @@ -78,11 +87,14 @@ export class DashboardComponent implements OnInit { current_price: data.data[i].current_price, }); } - console.log(STOCK_DATA); + // assign data source this.dataSourceStocks = STOCK_DATA; this.profit += this.depotCurrentValue; }); + /** + * Function gets the transaction data and pushes it in the temporary object array + */ this.dataService.getTransactionData().subscribe((response: any) => { var data = JSON.parse(response); this.depotCost = 0; @@ -96,19 +108,13 @@ export class DashboardComponent implements OnInit { price: data.data[i].price, }); } + // assign data source this.dataSourceTransactions = TRANSACTION_DATA; - //TODO move to helper service - this.profit += this.depotCost; }); } - comment: string = ''; - isin: string = ''; - time: Date = new Date(); - count: number = 0.0; - price: number = 0.0; - + // function to open the user dialog to create a new transaction openDialog(): void { const dialogRef = this.dialog.open(UserDialogComponent, { width: '50vw', @@ -127,6 +133,7 @@ export class DashboardComponent implements OnInit { }); } + // assign columns for transactions to display in html, you can change order and add/remove columns displayedColumns: string[] = [ 'comment', 'weight', @@ -134,6 +141,8 @@ export class DashboardComponent implements OnInit { 'name', 'symbol', ]; + + // assign columns to display in html, you can change order and add/remove columns displayedColumnsStocks: string[] = [ 'count', 'comment', diff --git a/frontend/src/app/Views/login/login.component.ts b/frontend/src/app/Views/login/login.component.ts index a020f4a..12a5e87 100644 --- a/frontend/src/app/Views/login/login.component.ts +++ b/frontend/src/app/Views/login/login.component.ts @@ -13,6 +13,7 @@ export class LoginComponent implements OnInit { email: null, password: null, }; + isLoggedIn = false; isLoginFailed = false; errorMessage = ''; diff --git a/frontend/src/app/Views/profile/profile.component.ts b/frontend/src/app/Views/profile/profile.component.ts index 6ee3bc0..2df4d84 100644 --- a/frontend/src/app/Views/profile/profile.component.ts +++ b/frontend/src/app/Views/profile/profile.component.ts @@ -32,6 +32,9 @@ export class ProfileComponent implements OnInit { ) {} ngOnInit(): void { + /** + * get user data to display + */ this.profileService.getUserData().subscribe((result) => { console.log(result); result = JSON.parse(result); @@ -42,6 +45,9 @@ export class ProfileComponent implements OnInit { }); } + /** + * Add telegram user id in database + */ onSubmit() { if (this.userId != '') { console.log(this.userId); @@ -51,6 +57,9 @@ export class ProfileComponent implements OnInit { } } + /** + * Function to update user information + */ updateUser() { const { username, email, password } = this.form; this.profileService @@ -60,12 +69,14 @@ export class ProfileComponent implements OnInit { }); } + // opens confirmation dialog openDialog(action: string) { const dialogRef = this.dialog.open(ConfirmationDialogComponent, { width: '50vw', height: '20vh', }); + // on close dialog, if action is "addTelegram" update telegram id, else update user information dialogRef.afterClosed().subscribe((result) => { if (result === true) { if (action === 'addTelegram') { @@ -77,6 +88,7 @@ export class ProfileComponent implements OnInit { }); } + // helper user dialog to explain the process of getting the telegram id openHelp() { const dialogRef = this.dialog.open(HelpDialogComponent, { width: '50vw', diff --git a/frontend/src/app/Views/register/register.component.ts b/frontend/src/app/Views/register/register.component.ts index 519e4b1..3698f6b 100644 --- a/frontend/src/app/Views/register/register.component.ts +++ b/frontend/src/app/Views/register/register.component.ts @@ -25,7 +25,12 @@ export class RegisterComponent { * @param {Router} privaterouter */ constructor(private authService: AuthService, private router: Router) {} + + /** + * On submit, send user information to backend + */ onSubmit(): void { + // validate that passwords match if (this.form.password === this.form.passwordRepeat) { this.checkPasswordFailed = false; const { email, username, password } = this.form;