Как вы можете создать вложенное, настраиваемое действие класса на ресурсе JS-Data?
У меня есть объект JS-Data, который является вложенным (т.е. имеет родительское отношение)
(NB весь код написан на кофе)
Follow = DS.defineResource
name: "follow"
endpoint: "follows"
relations:
belongsTo:
post:
localField: "post"
localKey: "post_id"
parent: true
actions:
currentUsersFollow:
method: "GET"
pathname: "current_users_follow"
Мне нужно вызвать пользовательское действие, currentUsersFollow
Однако я не хочу называть это в случае Follow
, Это метод класса, как /index
и не имеет ассоциированного экземпляра. Однако путь все еще должен быть вложенным в родительский объект.
т.е.
Follow.currentUsersFollow({post_id: 213423})
# => http://ourapp.com/api/v1/follows/current_users_follow
#
# I would like this to generate:
# http://ourapp.com/api/v1/posts/213423/follows/current_users_follow
#
# i.e. it's missing the nesting: /posts/213423
Это возможно с .findAll
Теперь, если вы сделали это с .findAll()
тогда он будет генерировать вложенный маршрут, если вы передадите соответствующий родительский идентификатор:
Follow.findAll({post_id: 213423})
# => http://ourapp.com/api/posts/213423/follows
Как видите, сообщение правильно указано и отправляется в общую конечную точку.
Как вы можете создать собственное вложенное действие без экземпляра?
Короче говоря, я хотел бы создать настраиваемое действие для моего ресурса JS-Data, который вложен в родительский объект, но не вызывается для экземпляра дочернего элемента.
Это возможно?
1 ответ
Определите свое действие:
actions: {
currentUsersFollow: {
method: 'GET',
endpoint: 'posts',
pathname: 'current_users_follow'
}
}
Тогда назовите это так:
Follow.currentUsersFollow(213423)
и это должно произвести
GET /posts/213423/current_users_follow