-
Notifications
You must be signed in to change notification settings - Fork 1
HalModel
Mihael Safaric edited this page Jul 8, 2019
·
29 revisions
HalModel
is an abstract class which enriches your models with the HAL functionalies.
constructor(resource: RawHalResource = {}, private datastore: DatastoreService, public rawResponse?: HttpResponse<any>)
-
endpoint
:string
- used for build resource URLs
- readonly
- can be set via
ModelConfig
decorator - default value: the value of
endpoint
property from the model decorator - NOTE: either this getter has to be implemented or
endpoint
must be specified in the model constructor
-
type
:string
- return unique name of the model class specified in the model decorator
-
uniqueModelIdentificator
:string
- returns unique model identificator
- default: URL to the resource
- Guide: Overriding unique model identificator
-
id
:string
- returns the model ID parsed from
self
link
- returns the model ID parsed from
-
networkConfig
:NetworkConfig
- returns network config specified on a model level
-
isSaved
:boolean
- return
true
if model is saved,else
otherwise
- return
-
selfLink
:string
- GET: returns URL to the resource
- SET: sets
selfLink
property of the model if it is not already set
getHalDocumentClass<T extends this>(): HalDocumentConstructor<T>;
- returns
HalDocument
class which is defined on the model level
getRelationshipUrl(relationshipName: string): string;
- returns URL for fetching
relationshipName
relationship
fetchRelationships(relationshipNames: string | Array<string>): Observable<this>;
- it uses
fetchModelRelationships
in the background, check docs there - fetches one or more model relationships
- returns the original model
- the original model is fetched from the local store
getPropertyData(propertyName: string): ModelProperty;
- returns the information about
propertyName
property
getEmbeddedResource(resourceName: string): RawHalResource | undefined;
- returns HAL formatted object which represents a model (or models) under
resourceName
relationship - returns
undefined
if such object does not exist in the resource response - it searches for the object under
resource[resourceName]
and inside theembedded
property, ie.resource._embedded[resourceName]
generatePayload(): object;
- maps model attribute properties to a simple object and returns that object
save(): Observable<this>;
- calls
delete
method on a datastore service - see
DatastoreService
delete(): Observable<>;
- calls
save
method on a datastore service which then makesPOST
/PUT
request for the current model - see
DatastoreService
generateHeaders(): object;
- maps model header attribute properties to a simple object and returns that object
Model properties must be decorated with one of the following decorator: