Skip to content

Commit

Permalink
feat(http): create StarkHttp module. Fixed imports. Implemented small…
Browse files Browse the repository at this point in the history
… demo in Starter [#96]
  • Loading branch information
christophercr committed Mar 21, 2018
1 parent 19d091f commit 201edb8
Show file tree
Hide file tree
Showing 37 changed files with 199 additions and 80 deletions.
4 changes: 2 additions & 2 deletions packages/stark-core/src/configuration/entities/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"use strict";

export * from "./language";
export * from "./metadata";
export * from "./language/index";
export * from "./metadata/index";
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict";

import {StarkLanguage} from "../language";
import {StarkLanguage} from "../language/index";

/**
* Metadata that describes the current application build
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {ArrayNotEmpty, IsDefined, IsNotEmpty, IsString, ValidateNested} from "cl
import {autoserialize} from "cerialize";

import {StarkApplicationMetadata} from "./application-metadata.entity.intf";
import {StarkLanguageImpl} from "../language";
import {StarkLanguageImpl} from "../language/index";
import {StarkLanguage} from "../language/language.entity.intf";
import {StarkLanguages} from "../language/language.constants";

Expand Down
2 changes: 1 addition & 1 deletion packages/stark-core/src/configuration/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
"use strict";

export * from "./entities";
export * from "./entities/index";
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict";

import {StarkHttpRequest, StarkResource} from "../entities";
import {StarkHttpRequest, StarkResource} from "../entities/index";

export interface StarkHttpBaseRequestBuilder<T extends StarkResource> {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict";

import {StarkHttpRequest, StarkResource} from "../entities";
import {StarkHttpRequest, StarkResource} from "../entities/index";
import {StarkHttpBaseRequestBuilder} from "./http-abstract-base-request-builder.intf";
import {StarkUrlUtil} from "../../util/url-util";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict";
import {StarkLanguage} from "../../configuration/entities/language";
import {StarkSortItem} from "../entities";
import {StarkLanguage} from "../../configuration/entities/language/index";
import {StarkSortItem} from "../entities/index";

export interface StarkHttpFetchResourceRequestBuilder {
/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
"use strict";

import {StarkLanguage} from "../../configuration/entities/language";
import {StarkSortItem} from "../entities/metadata";
import {StarkHttpHeaders, StarkHttpQueryParameters} from "../constants";
import {StarkLanguage} from "../../configuration/entities/language/index";
import {StarkSortItem} from "../entities/metadata/index";
import {StarkHttpHeaders, StarkHttpQueryParameters} from "../constants/index";
import {StarkHttpFetchResourceRequestBuilder} from "./http-abstract-fetch-resource-request-builder.intf";
import {StarkAbstractHttpBaseRequestBuilder} from "./http-abstract-base-request-builder";
import {StarkResource} from "../entities/resource.entity.intf";
Expand Down
8 changes: 4 additions & 4 deletions packages/stark-core/src/http/builder/http-request-builder.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
"use strict";

import {Serialize} from "cerialize";
import {StarkBackend, StarkHttpRequestType, StarkResource} from "../entities";
import {StarkSerializable} from "../../serialization";
import {StarkHttpEchoType, StarkHttpHeaders} from "../constants";
import {StarkBackend, StarkHttpRequestType, StarkResource} from "../entities/index";
import {StarkSerializable} from "../../serialization/index";
import {StarkHttpEchoType, StarkHttpHeaders} from "../constants/index";
import {StarkHttpRequestBuilder} from "./http-request-builder.intf";
import {StarkHttpCreateRequestBuilder} from "./http-create-request-builder.intf";
import {StarkHttpDeleteRequestBuilder} from "./http-delete-request-builder.intf";
Expand All @@ -21,7 +21,7 @@ import {
StarkHttpUpdateRequestParams
} from "./http-request-parameters.intf";
import {StarkUrlUtil} from "../../util/url-util";
import {StarkHttpSerializer, StarkHttpSerializerImpl} from "../serializer";
import {StarkHttpSerializer, StarkHttpSerializerImpl} from "../serializer/index";
import {StarkHttpBaseRequestBuilder} from "./http-abstract-base-request-builder.intf";
import {StarkAbstractHttpBaseRequestBuilder} from "./http-abstract-base-request-builder";
import {StarkAbstractHttpFetchResourceRequestBuilder} from "./http-abstract-fetch-resource-request-builder";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import {StarkHttpError} from "./http-error.entity.intf";
import {StarkHttpErrorWrapper} from "./http-error-wrapper.entity.intf";
import {StarkHttpStatusCodes} from "../../enumerators";
import {StarkHttpStatusCodes} from "../../enumerators/index";

export class StarkHttpErrorWrapperImpl implements StarkHttpErrorWrapper {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use strict";

import {StarkBackend} from "../entities/backend";
import {StarkSortItem} from "./metadata";
import {StarkSortItem} from "./metadata/index";
import {StarkHttpRequestType} from "./http-request-type.entity";
import {StarkResource} from "./resource.entity.intf";
import {StarkHttpSerializer} from "../serializer";
Expand Down
8 changes: 4 additions & 4 deletions packages/stark-core/src/http/entities/index.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
"use strict";

export * from "./backend";
export * from "./error";
export * from "./backend/index";
export * from "./error/index";
export * from "./http-request.entity.intf";
export * from "./http-request-type.entity";
export * from "./metadata";
export * from "./metadata/index";
export * from "./resource.entity.intf";
export * from "./response";
export * from "./response/index";
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {StarkSortItem} from "./metadata-sort-item.entity.intf";
import {StarkSortItemImpl} from "./metadata-sort-item.entity";
import {StarkPaginationMetadata} from "./metadata-pagination.entity.intf";
import {StarkPaginationMetadataImpl} from "./metadata-pagination.entity";
import {StarkHttpErrorDetail, StarkHttpErrorDetailImpl} from "../error";
import {StarkHttpErrorDetail, StarkHttpErrorDetailImpl} from "../error/index";

export class StarkCollectionMetadataImpl implements StarkCollectionMetadata {
@deserializeAs(StarkSortItemImpl)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict";

import {StarkHttpErrorDetail} from "../error";
import {StarkHttpErrorDetail} from "../error/index";

export interface StarkWarnings {
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import {deserializeAs} from "cerialize";
import {StarkSingleItemMetadata} from "./single-item-metadata.entity.intf";
import {StarkHttpErrorDetail, StarkHttpErrorDetailImpl} from "../error";
import {StarkHttpErrorDetail, StarkHttpErrorDetailImpl} from "../error/index";

export class StarkSingleItemMetadataImpl implements StarkSingleItemMetadata {
@deserializeAs(StarkHttpErrorDetailImpl)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import {StarkCollectionResponseWrapper} from "./collection-response-wrapper.entity.intf";
import {StarkResource} from "../resource.entity.intf";
import {StarkCollectionMetadata} from "../metadata";
import {StarkHttpStatusCodes} from "../../enumerators";
import {StarkHttpStatusCodes} from "../../enumerators/index";

export class StarkCollectionResponseWrapperImpl<T extends StarkResource> implements StarkCollectionResponseWrapper<T> {
/** @internal */
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict";

import {StarkHttpStatusCodes} from "../../enumerators";
import {StarkHttpStatusCodes} from "../../enumerators/index";

export interface StarkHttpResponse {
starkHttpStatusCode: StarkHttpStatusCodes;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {StarkSingleItemResponseWrapper} from "./single-item-response-wrapper.entity.intf";
import {StarkResource} from "../resource.entity.intf";
import {StarkHttpStatusCodes} from "../../enumerators";
import {StarkHttpStatusCodes} from "../../enumerators/index";

export class StarkSingleItemResponseWrapperImpl<T extends StarkResource> implements StarkSingleItemResponseWrapper<T> {
/** @internal */
Expand Down
15 changes: 15 additions & 0 deletions packages/stark-core/src/http/http.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import {NgModule} from "@angular/core";
import {HttpClientModule} from "@angular/common/http";
import {StarkHttpServiceImpl, starkHttpServiceName} from "./service/index";

@NgModule({
imports: [
HttpClientModule
],
providers: [
{provide: starkHttpServiceName, useClass: StarkHttpServiceImpl},
]
})
export class StarkHttpModule {

}
15 changes: 8 additions & 7 deletions packages/stark-core/src/http/index.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
"use strict";

export * from "./builder";
export * from "./constants";
export * from "./entities";
export * from "./enumerators";
export * from "./repository";
export * from "./serializer";
export * from "./service";
export * from "./builder/index";
export * from "./constants/index";
export * from "./entities/index";
export * from "./enumerators/index";
export * from "./repository/index";
export * from "./serializer/index";
export * from "./service/index";
export * from "./http.module";
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import {StarkHttpDiscriminatorSerializer} from "./http-discriminator-serializer";
import {autoserialize, inheritSerialization} from "cerialize";
import {StarkSerializable} from "../../serialization";
import {StarkSerializable} from "../../serialization/index";

class Shape {
@autoserialize
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
"use strict";

import {StarkHttpSerializerImpl} from "./http-serializer";
import {StarkResource} from "../entities";
import {StarkSerializable} from "../../serialization";
import {StarkResource} from "../entities/index";
import {StarkSerializable} from "../../serialization/index";

/**
* Implementation of {@link StarkHttpSerializer}.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use strict";

import {HttpResponse} from "@angular/common/http";
import {StarkHttpRawCollectionResponseData, StarkHttpRequest, StarkResource} from "../entities";
import {StarkHttpRawCollectionResponseData, StarkHttpRequest, StarkResource} from "../entities/index";

/**
* @whatItDoes This is the base interface for entities' serializers used mainly by the HTTP Service.
Expand Down
4 changes: 2 additions & 2 deletions packages/stark-core/src/http/serializer/http-serializer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import {Deserialize, Serialize} from "cerialize";
import {StarkHttpSerializer} from "./http-serializer.intf";
import {StarkResource} from "../entities";
import {StarkSerializable} from "../../serialization";
import {StarkResource} from "../entities/index";
import {StarkSerializable} from "../../serialization/index";

/**
* Implementation of {@link StarkHttpSerializer} which uses the cerialize library behind the hoods.
Expand Down
5 changes: 3 additions & 2 deletions packages/stark-core/src/http/service/http.service.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2407,8 +2407,9 @@ class HttpServiceHelper<P extends StarkResource> extends StarkHttpServiceImpl<P>

public retryDelay: number;

public constructor(logger: StarkLoggingService, sessionService: StarkSessionService, $http: HttpClient) {
super(logger, sessionService, $http);
// FIXME: add the Logging and Session services once implemented
public constructor(_logger: StarkLoggingService, _sessionService: StarkSessionService, $http: HttpClient) {
super(/*logger, sessionService, */$http);
}

public addFakePreAuthenticationHeaders(request: StarkHttpRequest<P>): StarkHttpRequest<P> {
Expand Down
25 changes: 14 additions & 11 deletions packages/stark-core/src/http/service/http.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ import "rxjs/add/operator/catch";
import "rxjs/add/operator/map";
import "rxjs/add/operator/retryWhen";
import "rxjs/add/operator/mergeMap";
import {Inject, Injectable} from "@angular/core";
import {Injectable} from "@angular/core";
import {HttpClient, HttpHeaders, HttpResponse} from "@angular/common/http";

import {StarkHttpService, starkHttpServiceName} from "./http.service.intf";

import {StarkHttpHeaders} from "../constants";
import {StarkHttpHeaders} from "../constants/index";
import {
StarkCollectionMetadataImpl,
StarkCollectionResponseWrapper,
Expand All @@ -29,9 +29,9 @@ import {
StarkResource,
StarkSingleItemResponseWrapper,
StarkSingleItemResponseWrapperImpl
} from "../entities";
import {StarkLoggingService, starkLoggingServiceName} from "../../logging";
import {StarkSessionService, starkSessionServiceName} from "../../session";
} from "../entities/index";
import {StarkLoggingService} from "../../logging/index";
import {StarkSessionService} from "../../session/index";

/**
* @ngdoc service
Expand All @@ -50,11 +50,14 @@ export class StarkHttpServiceImpl<P extends StarkResource> implements StarkHttpS
private sessionService: StarkSessionService;
private httpClient: HttpClient;

public constructor(@Inject(starkLoggingServiceName) logger: StarkLoggingService,
@Inject(starkSessionServiceName) sessionService: StarkSessionService,
@Inject("HttpClient") httpClient: HttpClient) {
this.logger = logger;
this.sessionService = sessionService;
// FIXME: uncomment these lines once LoggingService and SessionService are implemented
public constructor(/*@Inject(starkLoggingServiceName) logger: StarkLoggingService,
@Inject(starkSessionServiceName) sessionService: StarkSessionService,*/
httpClient: HttpClient) {
this.logger = <any>console; //logger;
this.sessionService = <any>{
fakePreAuthenticationHeaders: new Map<string, string>()
};
this.httpClient = httpClient;
}

Expand Down Expand Up @@ -186,7 +189,7 @@ export class StarkHttpServiceImpl<P extends StarkResource> implements StarkHttpS

const requestCopy: StarkHttpRequest<P> = _cloneDeep(request);

requestCopy.headers.set(StarkHttpHeaders.NBB_CORRELATION_ID, this.logger.correlationId);
// requestCopy.headers.set(StarkHttpHeaders.NBB_CORRELATION_ID, console.correlationId);

return requestCopy;
}
Expand Down
2 changes: 1 addition & 1 deletion packages/stark-core/src/logging/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
"use strict";

export * from "./service";
export * from "./service/index";
2 changes: 1 addition & 1 deletion packages/stark-core/src/session/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
"use strict";

export * from "./service";
export * from "./service/index";
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use strict";

import {Observable} from "rxjs/Observable";
import {StarkUser} from "../user";
import {StarkUser} from "../user/index";

export const starkSessionServiceName: string = "StarkSessionService";

Expand Down
19 changes: 10 additions & 9 deletions packages/stark-core/src/session/user/user.entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
import {autoserialize} from "cerialize";
import {StarkUserProfile} from "./user-profile.entity.intf";
import {StarkUserSecurityProfile} from "./user-security-profile.entity.intf";
import {StarkResource} from "../../http";
import {IsArray, IsBoolean, IsDefined, IsEmail, IsString, ValidateIf} from "class-validator";
import {StarkResource} from "../../http/index";
// import {IsArray, IsBoolean, IsDefined, IsEmail, IsString, ValidateIf} from "class-validator";
import {IsArray, IsBoolean, IsDefined, IsEmail, IsString} from "class-validator";

export class StarkUser implements StarkUserProfile, StarkUserSecurityProfile, StarkResource {
@IsDefined()
Expand All @@ -27,27 +28,27 @@ export class StarkUser implements StarkUserProfile, StarkUserSecurityProfile, St
@autoserialize
public lastName: string;

@ValidateIf((user: StarkUser) => typeof user.email !== "undefined" && user.email !== null)
// @ValidateIf((user: StarkUser) => typeof user.email !== "undefined" && user.email !== null)
@IsEmail()
@autoserialize
public email?: string;

@ValidateIf((user: StarkUser) => typeof user.phone !== "undefined" && user.phone !== null)
// @ValidateIf((user: StarkUser) => typeof user.phone !== "undefined" && user.phone !== null)
@IsString()
@autoserialize
public phone?: string;

@ValidateIf((user: StarkUser) => typeof user.language !== "undefined" && user.language !== null)
// @ValidateIf((user: StarkUser) => typeof user.language !== "undefined" && user.language !== null)
@IsString()
@autoserialize
public language: string;

@ValidateIf((user: StarkUser) => typeof user.selectedLanguage !== "undefined" && user.selectedLanguage !== null)
// @ValidateIf((user: StarkUser) => typeof user.selectedLanguage !== "undefined" && user.selectedLanguage !== null)
@IsString()
@autoserialize
public selectedLanguage?: string;

@ValidateIf((user: StarkUser) => typeof user.referenceNumber !== "undefined" && user.referenceNumber !== null)
// @ValidateIf((user: StarkUser) => typeof user.referenceNumber !== "undefined" && user.referenceNumber !== null)
@IsString()
@autoserialize
public referenceNumber?: string;
Expand All @@ -57,12 +58,12 @@ export class StarkUser implements StarkUserProfile, StarkUserSecurityProfile, St
@autoserialize
public roles: string[] = [];

@ValidateIf((user: StarkUser) => typeof user.workpost !== "undefined" && user.workpost !== null)
// @ValidateIf((user: StarkUser) => typeof user.workpost !== "undefined" && user.workpost !== null)
@IsString()
@autoserialize
public workpost?: string;

@ValidateIf((user: StarkUser) => typeof user.isAnonymous !== "undefined" && user.isAnonymous !== null)
// @ValidateIf((user: StarkUser) => typeof user.isAnonymous !== "undefined" && user.isAnonymous !== null)
@IsBoolean()
@autoserialize
public isAnonymous?: boolean;
Expand Down
2 changes: 1 addition & 1 deletion packages/stark-core/src/test/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
"use strict";

export * from "./unit-testing";
export * from "./unit-testing/index";
Loading

0 comments on commit 201edb8

Please sign in to comment.