Прямоугольное соединение OneToOne

В #/dossiers/{id}/offertes моего клиентского приложения
мне нужно получить свое досье из rest api/dossiers/{id}.
Затем в этом досье мне нужно получить соответствующее предложение api/dossiers /{id}/offerte
Отсюда я получу свой offerteRecords api/offertes/{id2}/records

Я включу свои данные REST здесь

Первое досье не проблема.

restService.getOne("dossiers",this.parentId).then(
    (dossier: any): void => {
        this.dossier = dossier;
}

Но затем я хочу получить свое второе досье. Я могу сделать это так:

restService.getOneUrl("offertes", this.dossier._links.offerte.href).then(
    (offerte: any): void => {
        this.parent = offerte;
        console.log("offerte is ", this.parent);
    }
);

И это дает мне

Объект {id: 1, createdBy: "system", createdOn: "2016-05-17T14:24:43.384+0000", updatedBy: null, updatedOn: null…}

Но я хочу сделать что-то вроде

this.dossier.getList("offerte").then(
            (offerte: any):void =>{
                console.log("offerte is ", offerte);
            }
        );

Но это возвращает

[маршрут: "offerte", reqParams: null, измененный формат: true, fromServer: true, parentResource: Object…]

Как мне вызвать этот объект вместо getList()?


person turoni    schedule 31.05.2016    source источник


Ответы (1)


Я нашел частичное решение своей проблемы.
В моей прямоугольной конфигурации это было предопределено, когда я получил проект.

restangularProvider.addResponseInterceptor(function(data: any, operation: string, what: string,
                                                    url: string, response: any,
                                                    deferred: any): any {
    let result: any = data;

    if (operation === 'getList') {
        if (data._embedded !== undefined) {
            result = data._embedded[what];
        } else {
            result = [];
        }
}

    return result;
});

Это сделало форматирование моих полученных данных неверным по сравнению с getOneUrl.
Это было сделано, потому что restangular всегда хочет, чтобы массив вводился в getList.
Я мог бы решить эту проблему, написав определенную пользовательскую оболочку, которая удовлетворяет требованиям getList, но самое простое/быстрое решение сделать то, что я хочу, это использовать customGET();

this.dossier.customGET("offerte").then(
        (offerte: any):void =>{
            console.log("offerte is ", offerte);
        }
    );

Это возвращает правильный объект предложения.

person turoni    schedule 02.06.2016