Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion e2e/infrastructure/NamespaceHttp.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ describe('NamespaceHttp', () => {
const json = JSON.parse(data);
config = json;
account = Account.createFromPrivateKey(json.testAccount.privateKey, NetworkType.MIJIN_TEST);
namespaceHttp = new NamespaceHttp(json.apiUrl);
namespaceHttp = new NamespaceHttp(json.apiUrl, NetworkType.MIJIN_TEST);
transactionHttp = new TransactionHttp(json.apiUrl);
generationHash = json.generationHash;
done();
Expand Down
9 changes: 4 additions & 5 deletions src/infrastructure/AccountHttp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import {catchError, map} from 'rxjs/operators';
import {AccountInfo} from '../model/account/AccountInfo';
import { ActivityBucket } from '../model/account/ActivityBucket';
import {Address} from '../model/account/Address';
import { NetworkType } from '../model/blockchain/NetworkType';
import {Mosaic} from '../model/mosaic/Mosaic';
import {MosaicId} from '../model/mosaic/MosaicId';
import {AggregateTransaction} from '../model/transaction/AggregateTransaction';
Expand All @@ -28,7 +29,6 @@ import {AccountRepository} from './AccountRepository';
import { AccountInfoDTO,
AccountRoutesApi } from './api';
import {Http} from './Http';
import {NetworkHttp} from './NetworkHttp';
import {QueryParams} from './QueryParams';
import {CreateTransactionFromDTO} from './transaction/CreateTransactionFromDTO';

Expand All @@ -47,11 +47,10 @@ export class AccountHttp extends Http implements AccountRepository {
/**
* Constructor
* @param url
* @param networkHttp
* @param networkType
*/
constructor(url: string, networkHttp?: NetworkHttp) {
networkHttp = networkHttp == null ? new NetworkHttp(url) : networkHttp;
super(networkHttp);
constructor(url: string, networkType?: NetworkType) {
super(url, networkType);
this.accountRoutesApi = new AccountRoutesApi(url);
}

Expand Down
9 changes: 4 additions & 5 deletions src/infrastructure/BlockHttp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ import {PublicAccount} from '../model/account/PublicAccount';
import {BlockInfo} from '../model/blockchain/BlockInfo';
import { MerklePathItem } from '../model/blockchain/MerklePathItem';
import { MerkleProofInfo } from '../model/blockchain/MerkleProofInfo';
import { NetworkType } from '../model/blockchain/NetworkType';
import {Transaction} from '../model/transaction/Transaction';
import {UInt64} from '../model/UInt64';
import { BlockRoutesApi } from './api';
import {BlockRepository} from './BlockRepository';
import {Http} from './Http';
import { NetworkHttp } from './NetworkHttp';
import {QueryParams} from './QueryParams';
import {CreateTransactionFromDTO, extractBeneficiary} from './transaction/CreateTransactionFromDTO';

Expand Down Expand Up @@ -58,11 +58,10 @@ export class BlockHttp extends Http implements BlockRepository {
/**
* Constructor
* @param url
* @param networkHttp
* @param networkType
*/
constructor(url: string, networkHttp?: NetworkHttp) {
networkHttp = networkHttp == null ? new NetworkHttp(url) : networkHttp;
super(networkHttp);
constructor(url: string, networkType?: NetworkType) {
super(url, networkType);
this.blockRoutesApi = new BlockRoutesApi(url);
}

Expand Down
2 changes: 1 addition & 1 deletion src/infrastructure/ChainHttp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export class ChainHttp extends Http implements ChainRepository {
* @param url
*/
constructor(url: string) {
super();
super(url);
this.chainRoutesApi = new ChainRoutesApi(url);
}

Expand Down
2 changes: 1 addition & 1 deletion src/infrastructure/DiagnosticHttp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export class DiagnosticHttp extends Http implements DiagnosticRepository {
* @param url
*/
constructor(url: string) {
super();
super(url);
this.diagnosticRoutesApi = new DiagnosticRoutesApi(url);
}

Expand Down
35 changes: 20 additions & 15 deletions src/infrastructure/Http.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,36 +14,41 @@
* limitations under the License.
*/

import {Observable, of as observableOf} from 'rxjs';
import {map} from 'rxjs/operators';
// tslint:disable-next-line: ordered-imports
import {from as observableFrom, Observable, of as observableOf, throwError} from 'rxjs';
import {catchError, map} from 'rxjs/operators';
import {NetworkType} from '../model/blockchain/NetworkType';
import {NetworkHttp} from './NetworkHttp';
import { NodeRoutesApi } from './api/apis';
import { QueryParams } from './QueryParams';
/**
* Http extended by all http services
*/
export abstract class Http {
private networkHttp: NetworkHttp;
private networkType: NetworkType;
protected readonly url: string;
protected networkType: NetworkType;

/**
* Constructor
* @param url
* @param networkHttp
* @param url Base catapult-rest url
* @param networkType
*/
constructor(networkHttp?: NetworkHttp) {
if (networkHttp) {
this.networkHttp = networkHttp;
constructor(url: string, networkType?: NetworkType) {
if (networkType) {
this.networkType = networkType;
}
this.url = url;
}

getNetworkTypeObservable(): Observable<NetworkType> {
let networkTypeResolve;
if (this.networkType == null) {
networkTypeResolve = this.networkHttp.getNetworkType().pipe(map((networkType) => {
this.networkType = networkType;
return networkType;
}));
if (!this.networkType) {
networkTypeResolve = observableFrom(new NodeRoutesApi(this.url).getNodeInfo()).pipe(
map(({body}) => {
this.networkType = body.networkIdentifier;
return body.networkIdentifier;
}),
catchError((error) => throwError(this.errorHandling(error))),
);
} else {
networkTypeResolve = observableOf(this.networkType);
}
Expand Down
9 changes: 4 additions & 5 deletions src/infrastructure/MetadataHttp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {from as observableFrom, Observable, throwError} from 'rxjs';
import {catchError, map} from 'rxjs/operators';
import { Convert } from '../core/format/Convert';
import { Address } from '../model/account/Address';
import { NetworkType } from '../model/blockchain/NetworkType';
import { Metadata } from '../model/metadata/Metadata';
import { MetadataEntry } from '../model/metadata/MetadataEntry';
import { MetadataType } from '../model/metadata/MetadataType';
Expand All @@ -27,7 +28,6 @@ import {UInt64} from '../model/UInt64';
import { MetadataDTO, MetadataRoutesApi } from './api';
import {Http} from './Http';
import { MetadataRepository } from './MetadataRepository';
import {NetworkHttp} from './NetworkHttp';
import { QueryParams } from './QueryParams';

/**
Expand All @@ -45,11 +45,10 @@ export class MetadataHttp extends Http implements MetadataRepository {
/**
* Constructor
* @param url
* @param networkHttp
* @param networkType
*/
constructor(url: string, networkHttp?: NetworkHttp) {
networkHttp = networkHttp == null ? new NetworkHttp(url) : networkHttp;
super(networkHttp);
constructor(url: string, networkType?: NetworkType) {
super(url, networkType);
this.metadataRoutesApi = new MetadataRoutesApi(url);
}

Expand Down
9 changes: 4 additions & 5 deletions src/infrastructure/MosaicHttp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ import {from as observableFrom, Observable, throwError} from 'rxjs';
import {catchError, map, mergeMap} from 'rxjs/operators';
import { Address } from '../model/account/Address';
import {PublicAccount} from '../model/account/PublicAccount';
import { NetworkType } from '../model/blockchain/NetworkType';
import {MosaicFlags} from '../model/mosaic/MosaicFlags';
import {MosaicId} from '../model/mosaic/MosaicId';
import {MosaicInfo} from '../model/mosaic/MosaicInfo';
import {UInt64} from '../model/UInt64';
import { MosaicRoutesApi } from './api';
import {Http} from './Http';
import {MosaicRepository} from './MosaicRepository';
import {NetworkHttp} from './NetworkHttp';

/**
* Mosaic http repository.
Expand All @@ -42,11 +42,10 @@ export class MosaicHttp extends Http implements MosaicRepository {
/**
* Constructor
* @param url
* @param networkHttp
* @param networkType
*/
constructor(url: string, networkHttp?: NetworkHttp) {
networkHttp = networkHttp == null ? new NetworkHttp(url) : networkHttp;
super(networkHttp);
constructor(url: string, networkType?: NetworkType) {
super(url, networkType);
this.mosaicRoutesApi = new MosaicRoutesApi(url);
}

Expand Down
9 changes: 4 additions & 5 deletions src/infrastructure/MultisigHttp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ import {Address} from '../model/account/Address';
import {MultisigAccountGraphInfo} from '../model/account/MultisigAccountGraphInfo';
import {MultisigAccountInfo} from '../model/account/MultisigAccountInfo';
import {PublicAccount} from '../model/account/PublicAccount';
import { NetworkType } from '../model/blockchain/NetworkType';
import { MultisigRoutesApi } from './api/multisigRoutesApi';
import {Http} from './Http';
import { MultisigRepository } from './MultisigRepository';
import {NetworkHttp} from './NetworkHttp';

/**
* Multisig http repository.
Expand All @@ -40,11 +40,10 @@ export class MultisigHttp extends Http implements MultisigRepository {
/**
* Constructor
* @param url
* @param networkHttp
* @param networkType
*/
constructor(url: string, networkHttp?: NetworkHttp) {
networkHttp = networkHttp == null ? new NetworkHttp(url) : networkHttp;
super(networkHttp);
constructor(url: string, networkType?: NetworkType) {
super(url, networkType);
this.multisigRoutesApi = new MultisigRoutesApi(url);
}

Expand Down
9 changes: 4 additions & 5 deletions src/infrastructure/NamespaceHttp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import {Convert as convert, RawAddress as AddressLibrary} from '../core/format';
import { AccountNames } from '../model/account/AccountNames';
import {Address} from '../model/account/Address';
import {PublicAccount} from '../model/account/PublicAccount';
import { NetworkType } from '../model/blockchain/NetworkType';
import {MosaicId} from '../model/mosaic/MosaicId';
import { MosaicNames } from '../model/mosaic/MosaicNames';
import {AddressAlias} from '../model/namespace/AddressAlias';
Expand All @@ -33,7 +34,6 @@ import {UInt64} from '../model/UInt64';
import { NamespaceRoutesApi } from './api';
import {Http} from './Http';
import {NamespaceRepository} from './NamespaceRepository';
import {NetworkHttp} from './NetworkHttp';
import {QueryParams} from './QueryParams';

/**
Expand All @@ -51,11 +51,10 @@ export class NamespaceHttp extends Http implements NamespaceRepository {
/**
* Constructor
* @param url
* @param networkHttp
* @param networkType
*/
constructor(url: string, networkHttp?: NetworkHttp) {
networkHttp = networkHttp == null ? new NetworkHttp(url) : networkHttp;
super(networkHttp);
constructor(url: string, networkType?: NetworkType) {
super(url, networkType);
this.namespaceRoutesApi = new NamespaceRoutesApi(url);
}

Expand Down
4 changes: 1 addition & 3 deletions src/infrastructure/NetworkHttp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,13 @@
* limitations under the License.
*/

import { ClientResponse } from 'http';
import {from as observableFrom, Observable, throwError} from 'rxjs';
import {catchError, map} from 'rxjs/operators';
import { NetworkName } from '../model/blockchain/NetworkName';
import {NetworkType} from '../model/blockchain/NetworkType';
import { NodeInfo } from '../model/node/NodeInfo';
import { NetworkRoutesApi } from './api/apis';
import {Http} from './Http';
import { NetworkTypeDTO } from './model/networkTypeDTO';
import {NetworkRepository} from './NetworkRepository';
import { NodeHttp } from './NodeHttp';

Expand All @@ -44,7 +42,7 @@ export class NetworkHttp extends Http implements NetworkRepository {
* @param url
*/
constructor(url: string) {
super();
super(url);
this.nodeHttp = new NodeHttp(url);
this.networkRouteApi = new NetworkRoutesApi(url);

Expand Down
2 changes: 1 addition & 1 deletion src/infrastructure/NodeHttp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export class NodeHttp extends Http implements NodeRepository {
* @param url
*/
constructor(url: string) {
super();
super(url);
this.nodeRoutesApi = new NodeRoutesApi(url);

}
Expand Down
9 changes: 4 additions & 5 deletions src/infrastructure/ReceiptHttp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ import {from as observableFrom, Observable, throwError} from 'rxjs';
import {catchError, map, mergeMap} from 'rxjs/operators';
import { MerklePathItem } from '../model/blockchain/MerklePathItem';
import { MerkleProofInfo } from '../model/blockchain/MerkleProofInfo';
import { NetworkType } from '../model/blockchain/NetworkType';
import { Statement } from '../model/receipt/Statement';
import { ReceiptRoutesApi } from './api/receiptRoutesApi';
import {Http} from './Http';
import { NetworkHttp } from './NetworkHttp';
import { CreateStatementFromDTO } from './receipt/CreateReceiptFromDTO';
import { ReceiptRepository } from './ReceiptRepository';

Expand All @@ -40,11 +40,10 @@ export class ReceiptHttp extends Http implements ReceiptRepository {
/**
* Constructor
* @param url
* @param networkHttp
* @param networkType
*/
constructor(url: string, networkHttp?: NetworkHttp) {
networkHttp = networkHttp == null ? new NetworkHttp(url) : networkHttp;
super(networkHttp);
constructor(url: string, networkType?: NetworkType) {
super(url, networkType);
this.receiptRoutesApi = new ReceiptRoutesApi(url);
}

Expand Down
6 changes: 4 additions & 2 deletions src/infrastructure/RestrictionAccountHttp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {from as observableFrom, Observable, throwError} from 'rxjs';
import {catchError, map} from 'rxjs/operators';
import { DtoMapping } from '../core/utils/DtoMapping';
import { Address } from '../model/account/Address';
import { NetworkType } from '../model/blockchain/NetworkType';
import { AccountRestriction } from '../model/restriction/AccountRestriction';
import { AccountRestrictions } from '../model/restriction/AccountRestrictions';
import { RestrictionAccountRoutesApi } from './api/restrictionAccountRoutesApi';
Expand All @@ -38,9 +39,10 @@ export class RestrictionAccountHttp extends Http implements RestrictionAccountRe
/**
* Constructor
* @param url
* @param networkType
*/
constructor(url: string) {
super();
constructor(url: string, networkType?: NetworkType) {
super(url, networkType);
this.restrictionAccountRoutesApi = new RestrictionAccountRoutesApi(url);

}
Expand Down
6 changes: 4 additions & 2 deletions src/infrastructure/RestrictionMosaicHttp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import {from as observableFrom, Observable, throwError} from 'rxjs';
import {catchError, map} from 'rxjs/operators';
import { Address } from '../model/account/Address';
import { NetworkType } from '../model/blockchain/NetworkType';
import { MosaicId } from '../model/mosaic/MosaicId';
import { MosaicAddressRestriction } from '../model/restriction/MosaicAddressRestriction';
import { MosaicGlobalRestriction } from '../model/restriction/MosaicGlobalRestriction';
Expand All @@ -39,9 +40,10 @@ export class RestrictionMosaicHttp extends Http implements RestrictionMosaicRepo
/**
* Constructor
* @param url
* @param networkType
*/
constructor(url: string) {
super();
constructor(url: string, networkType?: NetworkType) {
super(url, networkType);
this.restrictionMosaicRoutesApi = new RestrictionMosaicRoutesApi(url);

}
Expand Down
Loading