Skip to content
This repository was archived by the owner on Feb 26, 2024. It is now read-only.
This repository was archived by the owner on Feb 26, 2024. It is now read-only.

Extending InMemorDataService #219

@72gm

Description

@72gm

This may be a HowTo rather than an issue.

The company I am working for doesn't follow a restful pattern e.g. api/courses/abc doesn't return a course... it actually returns a wrapped object with a course inside

This is along the lines of {"operationSucceeded": true, "data": data, "notifications": []}

This causes an error as the item can't be found in the collection (because the collection is a level down)

e.g. collection.data rather than collection

Ok. So I have extended the service and used the get(reqInfo: RequestInfo) {} method

I have set const collection = reqInfo.collection.data;

It then finds the object correctly but I need to wrap this back up in the same object format. So i do

const options: ResponseOptions = data ?
{
body: {"operationSucceeded": true, "data": data, "notifications": []},
status: STATUS.OK
} :
{
body: { error: 'id='${id}' not found },
status: STATUS.NOT_FOUND
};

(As shown in your hero-in-mem-data-override.service.ts)

The built options look ok but my http subscription callback blows up with the following

"TypeError: You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable"

Do you have any advice? Am I creating the body wrong?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions