Format docs using linter and prettier.
This commit is contained in:
@@ -209,7 +209,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="34" class="link-to-prism">src/app/_services/user.service.ts:34</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="36" class="link-to-prism">src/app/_services/user.service.ts:36</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -322,8 +322,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="123"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:123</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="154"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:154</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -394,8 +394,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="65"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:65</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="67"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:67</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -586,8 +586,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="160"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:160</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="195"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:195</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -676,8 +676,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="179"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:179</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="221"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:221</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -764,8 +764,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="131"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:131</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="162"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:162</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -834,8 +834,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="56"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:56</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="58"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:58</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -904,8 +904,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="207"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:207</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="256"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:256</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -943,8 +943,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="119"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:119</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="150"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:150</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1013,8 +1013,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="115"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:115</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="143"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:143</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1052,8 +1052,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="199"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:199</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="248"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:248</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1091,8 +1091,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="203"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:203</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="252"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:252</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1161,8 +1161,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="215"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:215</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="264"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:264</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1200,8 +1200,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="61"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:61</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="63"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:63</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1282,8 +1282,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="211"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:211</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="260"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:260</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1323,8 +1323,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="149"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:149</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="180"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:180</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1412,8 +1412,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="192"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:192</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="239"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:239</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1451,8 +1451,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="51"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:51</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="53"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:53</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1521,8 +1521,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="127"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:127</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="158"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:158</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1591,8 +1591,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="197"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:197</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="244"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:244</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1663,8 +1663,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="107"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:107</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="128"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:128</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1757,8 +1757,8 @@
|
||||
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="135"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:135</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="166"
|
||||
class="link-to-prism">src/app/_services/user.service.ts:166</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1876,7 +1876,9 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<i>Default value : </i><code>new BehaviorSubject<Array<AccountDetails>>(this.accounts)</code>
|
||||
<i>Default value : </i><code>new BehaviorSubject<
|
||||
Array<AccountDetails>
|
||||
>(this.accounts)</code>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -1913,7 +1915,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="30" class="link-to-prism">src/app/_services/user.service.ts:30</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="32" class="link-to-prism">src/app/_services/user.service.ts:32</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1945,7 +1947,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="32" class="link-to-prism">src/app/_services/user.service.ts:32</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="34" class="link-to-prism">src/app/_services/user.service.ts:34</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1978,7 +1980,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="33" class="link-to-prism">src/app/_services/user.service.ts:33</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="35" class="link-to-prism">src/app/_services/user.service.ts:35</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -2010,7 +2012,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<div class="io-line">Defined in <a href="" data-line="34" class="link-to-prism">src/app/_services/user.service.ts:34</a></div>
|
||||
<div class="io-line">Defined in <a href="" data-line="36" class="link-to-prism">src/app/_services/user.service.ts:36</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -2037,7 +2039,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-md-4">
|
||||
<i>Default value : </i><code>new HttpHeaders({'x-cic-automerge': 'client'})</code>
|
||||
<i>Default value : </i><code>new HttpHeaders({ 'x-cic-automerge': 'client' })</code>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -2136,35 +2138,37 @@
|
||||
|
||||
|
||||
<div class="tab-pane fade tab-source-code" id="c-source">
|
||||
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import {Injectable} from '@angular/core';
|
||||
import {BehaviorSubject, Observable, Subject} from 'rxjs';
|
||||
import {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';
|
||||
import {environment} from '@src/environments/environment';
|
||||
import {first} from 'rxjs/operators';
|
||||
import {ArgPair, Envelope, Phone, Syncable, User} from 'cic-client-meta';
|
||||
import {AccountDetails} from '@app/_models';
|
||||
import {LoggingService} from '@app/_services/logging.service';
|
||||
import {TokenService} from '@app/_services/token.service';
|
||||
import {AccountIndex} from '@app/_eth';
|
||||
import {MutableKeyStore, PGPSigner, Signer} from '@app/_pgp';
|
||||
import {RegistryService} from '@app/_services/registry.service';
|
||||
import {CICRegistry} from 'cic-client';
|
||||
import {AuthService} from '@app/_services/auth.service';
|
||||
import {personValidation, vcardValidation} from '@app/_helpers';
|
||||
import {add0x} from '@src/assets/js/ethtx/dist/hex';
|
||||
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { Injectable } from '@angular/core';
|
||||
import { BehaviorSubject, Observable, Subject } from 'rxjs';
|
||||
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
|
||||
import { environment } from '@src/environments/environment';
|
||||
import { first } from 'rxjs/operators';
|
||||
import { ArgPair, Envelope, Phone, Syncable, User } from 'cic-client-meta';
|
||||
import { AccountDetails } from '@app/_models';
|
||||
import { LoggingService } from '@app/_services/logging.service';
|
||||
import { TokenService } from '@app/_services/token.service';
|
||||
import { AccountIndex } from '@app/_eth';
|
||||
import { MutableKeyStore, PGPSigner, Signer } from '@app/_pgp';
|
||||
import { RegistryService } from '@app/_services/registry.service';
|
||||
import { CICRegistry } from 'cic-client';
|
||||
import { AuthService } from '@app/_services/auth.service';
|
||||
import { personValidation, vcardValidation } from '@app/_helpers';
|
||||
import { add0x } from '@src/assets/js/ethtx/dist/hex';
|
||||
const vCard = require('vcard-parser');
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class UserService {
|
||||
headers: HttpHeaders = new HttpHeaders({'x-cic-automerge': 'client'});
|
||||
headers: HttpHeaders = new HttpHeaders({ 'x-cic-automerge': 'client' });
|
||||
keystore: MutableKeyStore;
|
||||
signer: Signer;
|
||||
registry: CICRegistry;
|
||||
|
||||
accounts: Array<AccountDetails> = [];
|
||||
private accountsList: BehaviorSubject<Array<AccountDetails>> = new BehaviorSubject<Array<AccountDetails>>(this.accounts);
|
||||
private accountsList: BehaviorSubject<Array<AccountDetails>> = new BehaviorSubject<
|
||||
Array<AccountDetails>
|
||||
>(this.accounts);
|
||||
accountsSubject: Observable<Array<AccountDetails>> = this.accountsList.asObservable();
|
||||
|
||||
actions: Array<any> = [];
|
||||
@@ -2176,7 +2180,7 @@ export class UserService {
|
||||
private loggingService: LoggingService,
|
||||
private tokenService: TokenService,
|
||||
private registryService: RegistryService,
|
||||
private authService: AuthService,
|
||||
private authService: AuthService
|
||||
) {
|
||||
this.authService.init().then(() => {
|
||||
this.keystore = authService.mutableKeyStore;
|
||||
@@ -2188,28 +2192,38 @@ export class UserService {
|
||||
|
||||
resetPin(phone: string): Observable<any> {
|
||||
const params: HttpParams = new HttpParams().set('phoneNumber', phone);
|
||||
return this.httpClient.get(`${environment.cicUssdUrl}/pin`, {params});
|
||||
return this.httpClient.get(`${environment.cicUssdUrl}/pin`, { params });
|
||||
}
|
||||
|
||||
getAccountStatus(phone: string): Observable<any> {
|
||||
const params: HttpParams = new HttpParams().set('phoneNumber', phone);
|
||||
return this.httpClient.get(`${environment.cicUssdUrl}/pin`, {params});
|
||||
return this.httpClient.get(`${environment.cicUssdUrl}/pin`, { params });
|
||||
}
|
||||
|
||||
getLockedAccounts(offset: number, limit: number): Observable<any> {
|
||||
return this.httpClient.get(`${environment.cicUssdUrl}/accounts/locked/${offset}/${limit}`);
|
||||
}
|
||||
|
||||
async changeAccountInfo(address: string, name: string, phoneNumber: string, age: string, type: string, bio: string, gender: string,
|
||||
businessCategory: string, userLocation: string, location: string, locationType: string
|
||||
async changeAccountInfo(
|
||||
address: string,
|
||||
name: string,
|
||||
phoneNumber: string,
|
||||
age: string,
|
||||
type: string,
|
||||
bio: string,
|
||||
gender: string,
|
||||
businessCategory: string,
|
||||
userLocation: string,
|
||||
location: string,
|
||||
locationType: string
|
||||
): Promise<any> {
|
||||
const accountInfo: any = {
|
||||
vcard: {
|
||||
fn: [{}],
|
||||
n: [{}],
|
||||
tel: [{}]
|
||||
tel: [{}],
|
||||
},
|
||||
location: {}
|
||||
location: {},
|
||||
};
|
||||
accountInfo.vcard.fn[0].value = name;
|
||||
accountInfo.vcard.n[0].value = name.split(' ');
|
||||
@@ -2225,33 +2239,52 @@ export class UserService {
|
||||
await vcardValidation(accountInfo.vcard);
|
||||
accountInfo.vcard = btoa(vCard.generate(accountInfo.vcard));
|
||||
const accountKey: string = await User.toKey(address);
|
||||
this.getAccountDetailsFromMeta(accountKey).pipe(first()).subscribe(async res => {
|
||||
const syncableAccount: Syncable = Envelope.fromJSON(JSON.stringify(res)).unwrap();
|
||||
const update: Array<ArgPair> = [];
|
||||
for (const prop in accountInfo) {
|
||||
update.push(new ArgPair(prop, accountInfo[prop]));
|
||||
}
|
||||
syncableAccount.update(update, 'client-branch');
|
||||
await personValidation(syncableAccount.m.data);
|
||||
await this.updateMeta(syncableAccount, accountKey, this.headers);
|
||||
}, async error => {
|
||||
this.loggingService.sendErrorLevelMessage('Can\'t find account info in meta service', this, {error});
|
||||
const syncableAccount: Syncable = new Syncable(accountKey, accountInfo);
|
||||
await this.updateMeta(syncableAccount, accountKey, this.headers);
|
||||
});
|
||||
this.getAccountDetailsFromMeta(accountKey)
|
||||
.pipe(first())
|
||||
.subscribe(
|
||||
async (res) => {
|
||||
const syncableAccount: Syncable = Envelope.fromJSON(JSON.stringify(res)).unwrap();
|
||||
const update: Array<ArgPair> = [];
|
||||
for (const prop of Object.keys(accountInfo)) {
|
||||
update.push(new ArgPair(prop, accountInfo[prop]));
|
||||
}
|
||||
syncableAccount.update(update, 'client-branch');
|
||||
await personValidation(syncableAccount.m.data);
|
||||
await this.updateMeta(syncableAccount, accountKey, this.headers);
|
||||
},
|
||||
async (error) => {
|
||||
this.loggingService.sendErrorLevelMessage(
|
||||
'Cannot find account info in meta service',
|
||||
this,
|
||||
{ error }
|
||||
);
|
||||
const syncableAccount: Syncable = new Syncable(accountKey, accountInfo);
|
||||
await this.updateMeta(syncableAccount, accountKey, this.headers);
|
||||
}
|
||||
);
|
||||
return accountKey;
|
||||
}
|
||||
|
||||
async updateMeta(syncableAccount: Syncable, accountKey: string, headers: HttpHeaders): Promise<any> {
|
||||
const envelope: Envelope = await this.wrap(syncableAccount , this.signer);
|
||||
async updateMeta(
|
||||
syncableAccount: Syncable,
|
||||
accountKey: string,
|
||||
headers: HttpHeaders
|
||||
): Promise<any> {
|
||||
const envelope: Envelope = await this.wrap(syncableAccount, this.signer);
|
||||
const reqBody: string = envelope.toJSON();
|
||||
this.httpClient.put(`${environment.cicMetaUrl}/${accountKey}`, reqBody , { headers }).pipe(first()).subscribe(res => {
|
||||
this.loggingService.sendInfoLevelMessage(`Response: ${res}`);
|
||||
});
|
||||
this.httpClient
|
||||
.put(`${environment.cicMetaUrl}/${accountKey}`, reqBody, { headers })
|
||||
.pipe(first())
|
||||
.subscribe((res) => {
|
||||
this.loggingService.sendInfoLevelMessage(`Response: ${res}`);
|
||||
});
|
||||
}
|
||||
|
||||
getActions(): void {
|
||||
this.httpClient.get(`${environment.cicCacheUrl}/actions`).pipe(first()).subscribe(res => this.actionsList.next(res));
|
||||
this.httpClient
|
||||
.get(`${environment.cicCacheUrl}/actions`)
|
||||
.pipe(first())
|
||||
.subscribe((res) => this.actionsList.next(res));
|
||||
}
|
||||
|
||||
getActionById(id: string): Observable<any> {
|
||||
@@ -2286,44 +2319,60 @@ export class UserService {
|
||||
|
||||
async loadAccounts(limit: number = 100, offset: number = 0): Promise<void> {
|
||||
this.resetAccountsList();
|
||||
const accountIndexAddress: string = await this.registry.getContractAddressByName('AccountRegistry');
|
||||
const accountIndexAddress: string = await this.registry.getContractAddressByName(
|
||||
'AccountRegistry'
|
||||
);
|
||||
const accountIndexQuery = new AccountIndex(accountIndexAddress);
|
||||
const accountAddresses: Array<string> = await accountIndexQuery.last(await accountIndexQuery.totalAccounts());
|
||||
const accountAddresses: Array<string> = await accountIndexQuery.last(
|
||||
await accountIndexQuery.totalAccounts()
|
||||
);
|
||||
this.loggingService.sendInfoLevelMessage(accountAddresses);
|
||||
for (const accountAddress of accountAddresses.slice(offset, offset + limit)) {
|
||||
await this.getAccountByAddress(accountAddress, limit);
|
||||
}
|
||||
}
|
||||
|
||||
async getAccountByAddress(accountAddress: string, limit: number = 100): Promise<Observable<AccountDetails>> {
|
||||
let accountSubject: Subject<any> = new Subject<any>();
|
||||
this.getAccountDetailsFromMeta(await User.toKey(add0x(accountAddress))).pipe(first()).subscribe(async res => {
|
||||
const account: Syncable = Envelope.fromJSON(JSON.stringify(res)).unwrap();
|
||||
const accountInfo = account.m.data;
|
||||
await personValidation(accountInfo);
|
||||
accountInfo.balance = await this.tokenService.getTokenBalance(accountInfo.identities.evm[`bloxberg:${environment.bloxbergChainId}`][0]);
|
||||
accountInfo.vcard = vCard.parse(atob(accountInfo.vcard));
|
||||
await vcardValidation(accountInfo.vcard);
|
||||
this.accounts.unshift(accountInfo);
|
||||
if (this.accounts.length > limit) {
|
||||
this.accounts.length = limit;
|
||||
}
|
||||
this.accountsList.next(this.accounts);
|
||||
accountSubject.next(accountInfo);
|
||||
});
|
||||
async getAccountByAddress(
|
||||
accountAddress: string,
|
||||
limit: number = 100
|
||||
): Promise<Observable<AccountDetails>> {
|
||||
const accountSubject: Subject<any> = new Subject<any>();
|
||||
this.getAccountDetailsFromMeta(await User.toKey(add0x(accountAddress)))
|
||||
.pipe(first())
|
||||
.subscribe(async (res) => {
|
||||
const account: Syncable = Envelope.fromJSON(JSON.stringify(res)).unwrap();
|
||||
const accountInfo = account.m.data;
|
||||
await personValidation(accountInfo);
|
||||
accountInfo.balance = await this.tokenService.getTokenBalance(
|
||||
accountInfo.identities.evm[`bloxberg:${environment.bloxbergChainId}`][0]
|
||||
);
|
||||
accountInfo.vcard = vCard.parse(atob(accountInfo.vcard));
|
||||
await vcardValidation(accountInfo.vcard);
|
||||
this.accounts.unshift(accountInfo);
|
||||
if (this.accounts.length > limit) {
|
||||
this.accounts.length = limit;
|
||||
}
|
||||
this.accountsList.next(this.accounts);
|
||||
accountSubject.next(accountInfo);
|
||||
});
|
||||
return accountSubject.asObservable();
|
||||
}
|
||||
|
||||
async getAccountByPhone(phoneNumber: string, limit: number = 100): Promise<Observable<AccountDetails>> {
|
||||
let accountSubject: Subject<any> = new Subject<any>();
|
||||
this.getAccountDetailsFromMeta(await Phone.toKey(phoneNumber)).pipe(first()).subscribe(async res => {
|
||||
const response: Syncable = Envelope.fromJSON(JSON.stringify(res)).unwrap();
|
||||
const address: string = response.m.data;
|
||||
const account: Observable<AccountDetails> = await this.getAccountByAddress(address, limit);
|
||||
account.subscribe(result => {
|
||||
accountSubject.next(result);
|
||||
async getAccountByPhone(
|
||||
phoneNumber: string,
|
||||
limit: number = 100
|
||||
): Promise<Observable<AccountDetails>> {
|
||||
const accountSubject: Subject<any> = new Subject<any>();
|
||||
this.getAccountDetailsFromMeta(await Phone.toKey(phoneNumber))
|
||||
.pipe(first())
|
||||
.subscribe(async (res) => {
|
||||
const response: Syncable = Envelope.fromJSON(JSON.stringify(res)).unwrap();
|
||||
const address: string = response.m.data;
|
||||
const account: Observable<AccountDetails> = await this.getAccountByAddress(address, limit);
|
||||
account.subscribe((result) => {
|
||||
accountSubject.next(result);
|
||||
});
|
||||
});
|
||||
});
|
||||
return accountSubject.asObservable();
|
||||
}
|
||||
|
||||
@@ -2332,7 +2381,9 @@ export class UserService {
|
||||
this.accountsList.next(this.accounts);
|
||||
}
|
||||
|
||||
searchAccountByName(name: string): any { return; }
|
||||
searchAccountByName(name: string): any {
|
||||
return;
|
||||
}
|
||||
|
||||
getCategories(): Observable<any> {
|
||||
return this.httpClient.get(`${environment.cicMetaUrl}/categories`);
|
||||
|
||||
Reference in New Issue
Block a user