Model Service

class ModelsService()

exported from src/app/api/models.service

ModelsService.apiService

type: src/app/api/api.service.ApiService

ModelsService.canonizeModelUri(modelUri)

Canonize a resource url.

(Remove schema, host, port, api path prefix and leading/trailing slashes.)

Arguments:
  • modelUri (string) –
Returns:

string

ModelsService.filterModel(properties, isBlacklist)

Return a stream filter for api models. (use with map in observable pipe)

Arguments:
  • properties (Iterable) – the property keys to filter for (array/set or other iterable) Use Empty iterable or null to deactivate filter
  • isBlacklist (boolean) – if true the filter ill be appliead as blacklist. (default=whitelest/false)
Returns:

<TODO>

ModelsService.getCacheSource(cacheURL)

Fetch the cache source for the given model url.

Arguments:
  • cacheURL (string) –
Returns:

AsyncSubject

ModelsService.getModel(modelUrl)

Get a model for the modelUrl.

Observable only sends a value if the model was found. Times out after 2s

Arguments:
  • modelUrl (any) – modelUrl
Returns:

Observable

ModelsService.handleArrayProperties(propRef)

Handle array type properties.

Replaces items with ApiModelRef to nestedModelCache if needed

Arguments:
  • propRef (src/app/api/models.service.PropertyRef) – input PropertyRef
Returns:

Observable

ModelsService.handleComplexProperties(model)

Check all properties of model for complex properties like arrays or objects.

Replaces all nested models with ApiModelRefs to nestedModelCache

Arguments:
  • model (src/app/api/apimodel.ApiModel) – input model
Returns:

Observable

ModelsService.handleNumericPropertyKeys(property)

Convert all property keys that should have numeric values (like ‘minimum’).

Arguments:
  • property (src/app/api/models.service.PropertyRef) – input PropertyRef
Returns:

Observable

ModelsService.handleObjectProperties(propRef)

Handle object type properties.

Replaces prop with ApiModelRef to nestedModelCache if needed

Arguments:
  • propRef (src/app/api/models.service.PropertyRef) – input PropertyRef
Returns:

Observable

ModelsService.localModels

type: <TODO>

ModelsService.mergeModels(targetModel, sourceModel)

Merge two ApiModels into one model.

Arguments:
  • targetModel (src/app/api/apimodel.ApiModel) – the model to be merged into
  • sourceModel (src/app/api/apimodel.ApiModel) – the model to be merged
Returns:

src/app/api/apimodel.ApiModel

ModelsService.mergeProperties(targetModel, sourceModel)

Merge properties of two ApiModels into one merged properties object.

Arguments:
  • targetModel (src/app/api/apimodel.ApiModel) – the model to be merged into
  • sourceModel (src/app/api/apimodel.ApiModel) – the model to be merged
Returns:

<TODO>

ModelsService.modelCache

type: Map

ModelsService.nestedModelCache

type: Map

ModelsService.new ModelsService(apiService)
Arguments:
  • apiService (src/app/api/api.service.ApiService) –
Returns:

src/app/api/models.service.ModelsService

ModelsService.onlyRequired(model)

Stream filter that filters out all not required properties of the model.

Arguments:
  • model (src/app/api/apimodel.ApiModel) – input api model
Returns:

<TODO>

ModelsService.resolveModel(modelUrl)

Resolve the modelUrl and return the corresponding model.

Arguments:
  • modelUrl (string) – resource url
Returns:

Observable

Resolve all model links and return an observable of pure ApiModels

starting with the first model of an allOf and recursively applying itself

Arguments:
  • | src/app/api/apimodel.ApiModelRef | src/app/api/apimodel.ApiModel model (src/app/api/apimodel.ApiModelAllOf) – input model
Returns:

Observable

ModelsService.resolveProperties(model)

Resolves all properties to actual ApiModels.

Arguments:
  • model (src/app/api/apimodel.ApiModel) – input model
Returns:

Observable