TrigenSoftware / DevFest-Siberia

DevFest Siberia 2019 site
https://devfest-siberia-2019-demo.netlify.com
MIT License
2 stars 0 forks source link

Сервис и экшны для reservation и favorites #201

Closed dangreen closed 4 years ago

dangreen commented 4 years ago

Экшны добавлять в сегмент user

Сваггер: https://yoba.gdg-siberia.com/swagger/#/

Ветка: component/Reservation-and-favorites-services

Rustamhabibullin commented 4 years ago

@dangreen редюсеры пока не трогать? Просто в задаче написано про экшены и сервисы

dangreen commented 4 years ago

@Rustamhabibullin трогать

Rustamhabibullin commented 4 years ago

@dangreen, в сваггере, что-то не пойму на счет favorites, там на пут и на делит он возвращает в ответ полностью обновленный массив с lectureId? Или как? http://prntscr.com/psn9uv Так же для делита. Он же вроде должен мне возвращать в ответ итем который я удалил, или добавил, чтобы я потом смотрел по ид в стейте, ну и либо добавлял, либо удалял в зависимости от экшена.

Или если они мне в ответ отдают обновленный массив, то можно сделать так? action

async fetchFavorites() {

        const favorites = await userService.fetchFavorites();

        this.setFavorites(favorites);
    }

async addFavorite(lectureId: string) {

    const favorites = await userService.addFavorite(lectureId);

    this.setFavorites(favorites);
}

async deleteFavorite(lectureId: string) {

    const favorites = await userService.deleteFavorite(lectureId);

    this.setFavorites(favorites);
}

reducer

setFavorites(state: UserState, { payload }: ISetFavoritesAction) {

        const favorites = payload && List(payload).map(Favorite);

        if (!favorites) {
            return state;
        }

        return state.set(
            'favorites',
            favorites
        );
    }
dangreen commented 4 years ago

@Rustamhabibullin да, так можно в этом случае

dangreen commented 4 years ago

205