Reverse Single Reference, dwusetny Diff 馃帀

Yo,

dzisiaj odda艂em do Review T763 - Reverse Single Reference. Diff tutaj:

https://hub.sealcode.org/D200

(btw, jest to dwusetny diff na naszym phabricatorze :confetti_ball: :fireworks: :smiley: )


Reverse Single Reference w skr贸cie to typ pola, kt贸ry jest read-only - nie mo偶emy do niego pisa膰 bezpo艣rednio, mo偶emy tylko czyta膰. Jego warto艣膰 jest automatycznie ustalana przez Sealiousa tak, aby zawiera艂a **list臋 wszystkich zasob贸w z danej kolekcji, kt贸re za pomoc膮 single_reference wskazuj膮 na dany zas贸b.

Przyk艂adowo: mamy kolekcje Users i Roles. Kolekcja Roles ma nast臋puj膮c膮 struktur臋:

fields: [
	{ name: "user", type: "single-reference", params: { collection: "users" } },
	{
		name: "role",
		type: "enum",
		params: { allowed_values: ["admin", "moderator", "dostawca"] },
	},
];

W ten spos贸b pozwalamy, aby u偶ytkownik mia艂 wi臋cej ni偶 jedn膮 rol臋. Ale filtrowanie u偶ytkownik贸w po posiadanych rolach mo偶e by膰 k艂opotliwe (aczkolwiek nie niemo偶liwe).

reverse-single-reference jest lustrzanym odbiciem przypisanego gdzie艣 indziej single-reference. Dzi臋ki temu mo偶emy utworzy膰 w kolekcji Users pole

{name: "roles", type: "reverse-single-reference", params: {collection: Roles, field_name: "user"}}

kt贸re dla ka偶dego usera b臋dzie zwraca艂o tablic臋 wszystkich dokument贸w z Roles, kt贸re na niego wskazuj膮. Mo偶na wtedy nawet filtrowa膰 u偶ytkownik贸w po polach kolekcji Roles:

HTTP /api/v1/collections/users?filter[roles][role]=admin

^ zwr贸ci tych u偶ytkownik贸w, dla kt贸rych jedna z przypisanych r贸l to admin :slight_smile:

2 Likes

Dzisiaj Bartek stworzy艂 diffa o jeszcze bardziej okr膮g艂ym numerze - 256!

2 Likes