Order membership by organization name

Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
Émile Ré
2026-01-19 17:37:15 +04:00
parent 63390db416
commit 887d39144b
10 changed files with 144 additions and 93 deletions

View File

@@ -9,6 +9,7 @@ All notable changes to this project will be documented in this file.
- Membership Profile authz done from membership in membershipResolver (it's a 1:1 association) - Membership Profile authz done from membership in membershipResolver (it's a 1:1 association)
- Match keycloak URL ports with default base URL one for local dev - Match keycloak URL ports with default base URL one for local dev
- Drop the authentication dialog in favor of a dedicated auth page for compliance page - Drop the authentication dialog in favor of a dedicated auth page for compliance page
- Order memberships by organization name on console / and memberships dropdown
### Fixed ### Fixed

View File

@@ -1,5 +1,5 @@
/** /**
* @generated SignedSource<<7759f335d6dd4b9ca6afbb601aa7794c>> * @generated SignedSource<<ccb5c8952aaa41ddee0df7e7e3abb2b0>>
* @lightSyntaxTransform * @lightSyntaxTransform
* @nogrep * @nogrep
*/ */
@@ -10,7 +10,7 @@
import { ConcreteRequest } from 'relay-runtime'; import { ConcreteRequest } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime"; import { FragmentRefs } from "relay-runtime";
export type MembershipOrderField = "CREATED_AT" | "EMAIL_ADDRESS" | "FULL_NAME" | "ROLE"; export type MembershipOrderField = "CREATED_AT" | "EMAIL_ADDRESS" | "FULL_NAME" | "ORGANIZATION_NAME" | "ROLE";
export type OrderDirection = "ASC" | "DESC"; export type OrderDirection = "ASC" | "DESC";
export type MembershipOrder = { export type MembershipOrder = {
direction: OrderDirection; direction: OrderDirection;

View File

@@ -1,5 +1,5 @@
/** /**
* @generated SignedSource<<b51fba8f2d50c85b2eeb51c658d82e17>> * @generated SignedSource<<a7fb3832b9c9d3830ceff389237da093>>
* @lightSyntaxTransform * @lightSyntaxTransform
* @nogrep * @nogrep
*/ */
@@ -42,8 +42,8 @@ var v0 = [
"kind": "Literal", "kind": "Literal",
"name": "orderBy", "name": "orderBy",
"value": { "value": {
"direction": "DESC", "direction": "ASC",
"field": "CREATED_AT" "field": "ORGANIZATION_NAME"
} }
} }
], ],
@@ -141,7 +141,7 @@ return {
"action": "THROW" "action": "THROW"
} }
], ],
"storageKey": "memberships(first:1000,orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})" "storageKey": "memberships(first:1000,orderBy:{\"direction\":\"ASC\",\"field\":\"ORGANIZATION_NAME\"})"
}, },
"action": "THROW" "action": "THROW"
} }
@@ -239,7 +239,7 @@ return {
"storageKey": null "storageKey": null
} }
], ],
"storageKey": "memberships(first:1000,orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})" "storageKey": "memberships(first:1000,orderBy:{\"direction\":\"ASC\",\"field\":\"ORGANIZATION_NAME\"})"
}, },
(v1/*: any*/) (v1/*: any*/)
], ],
@@ -248,16 +248,16 @@ return {
] ]
}, },
"params": { "params": {
"cacheID": "edb71632c35f1f8aefa1bb426c81a985", "cacheID": "9295fb9d95666f4b397645e143b7e774",
"id": null, "id": null,
"metadata": {}, "metadata": {},
"name": "MembershipsDropdownMenuQuery", "name": "MembershipsDropdownMenuQuery",
"operationKind": "query", "operationKind": "query",
"text": "query MembershipsDropdownMenuQuery {\n viewer {\n memberships(first: 1000, orderBy: {direction: DESC, field: CREATED_AT}) {\n edges {\n node {\n id\n organization {\n name\n id\n }\n ...MembershipsDropdownMenuItemFragment\n }\n }\n }\n id\n }\n}\n\nfragment MembershipsDropdownMenuItemFragment on Membership {\n id\n lastSession {\n id\n expiresAt\n }\n organization {\n id\n logoUrl\n name\n }\n}\n" "text": "query MembershipsDropdownMenuQuery {\n viewer {\n memberships(first: 1000, orderBy: {direction: ASC, field: ORGANIZATION_NAME}) {\n edges {\n node {\n id\n organization {\n name\n id\n }\n ...MembershipsDropdownMenuItemFragment\n }\n }\n }\n id\n }\n}\n\nfragment MembershipsDropdownMenuItemFragment on Membership {\n id\n lastSession {\n id\n expiresAt\n }\n organization {\n id\n logoUrl\n name\n }\n}\n"
} }
}; };
})(); })();
(node as any).hash = "aa787b33a7cb3046d30fd638f4850621"; (node as any).hash = "cd47570a10588c0e1c68240817141fd8";
export default node; export default node;

View File

@@ -1,5 +1,5 @@
/** /**
* @generated SignedSource<<1d247c2fede04c2292000421a9e49fa8>> * @generated SignedSource<<3a268aba389df25968eb44b454150288>>
* @lightSyntaxTransform * @lightSyntaxTransform
* @nogrep * @nogrep
*/ */
@@ -46,42 +46,39 @@ var v0 = {
"kind": "Literal", "kind": "Literal",
"name": "orderBy", "name": "orderBy",
"value": { "value": {
"direction": "DESC", "direction": "ASC",
"field": "CREATED_AT" "field": "ORGANIZATION_NAME"
} }
}, },
v1 = [ v1 = {
(v0/*: any*/)
],
v2 = {
"alias": null, "alias": null,
"args": null, "args": null,
"kind": "ScalarField", "kind": "ScalarField",
"name": "id", "name": "id",
"storageKey": null "storageKey": null
}, },
v3 = { v2 = {
"alias": null, "alias": null,
"args": null, "args": null,
"kind": "ScalarField", "kind": "ScalarField",
"name": "name", "name": "name",
"storageKey": null "storageKey": null
}, },
v4 = { v3 = {
"alias": null, "alias": null,
"args": null, "args": null,
"kind": "ScalarField", "kind": "ScalarField",
"name": "__typename", "name": "__typename",
"storageKey": null "storageKey": null
}, },
v5 = { v4 = {
"alias": null, "alias": null,
"args": null, "args": null,
"kind": "ScalarField", "kind": "ScalarField",
"name": "cursor", "name": "cursor",
"storageKey": null "storageKey": null
}, },
v6 = { v5 = {
"alias": null, "alias": null,
"args": null, "args": null,
"concreteType": "PageInfo", "concreteType": "PageInfo",
@@ -106,7 +103,7 @@ v6 = {
], ],
"storageKey": null "storageKey": null
}, },
v7 = { v6 = {
"kind": "ClientExtension", "kind": "ClientExtension",
"selections": [ "selections": [
{ {
@@ -118,16 +115,29 @@ v7 = {
} }
] ]
}, },
v8 = [ v7 = {
{ "kind": "Literal",
"kind": "Literal", "name": "orderBy",
"name": "first", "value": {
"value": 1000 "direction": "DESC",
}, "field": "CREATED_AT"
}
},
v8 = {
"kind": "Literal",
"name": "first",
"value": 1000
},
v9 = [
(v8/*: any*/),
(v0/*: any*/) (v0/*: any*/)
], ],
v9 = [ v10 = [
"orderBy" "orderBy"
],
v11 = [
(v8/*: any*/),
(v7/*: any*/)
]; ];
return { return {
"fragment": { "fragment": {
@@ -150,7 +160,9 @@ return {
"kind": "RequiredField", "kind": "RequiredField",
"field": { "field": {
"alias": "memberships", "alias": "memberships",
"args": (v1/*: any*/), "args": [
(v0/*: any*/)
],
"concreteType": "MembershipConnection", "concreteType": "MembershipConnection",
"kind": "LinkedField", "kind": "LinkedField",
"name": "__MembershipsPage_memberships_connection", "name": "__MembershipsPage_memberships_connection",
@@ -174,7 +186,7 @@ return {
"name": "node", "name": "node",
"plural": false, "plural": false,
"selections": [ "selections": [
(v2/*: any*/), (v1/*: any*/),
{ {
"args": null, "args": null,
"kind": "FragmentSpread", "kind": "FragmentSpread",
@@ -190,26 +202,26 @@ return {
"name": "organization", "name": "organization",
"plural": false, "plural": false,
"selections": [ "selections": [
(v3/*: any*/) (v2/*: any*/)
], ],
"storageKey": null "storageKey": null
}, },
"action": "THROW" "action": "THROW"
}, },
(v4/*: any*/) (v3/*: any*/)
], ],
"storageKey": null "storageKey": null
}, },
(v5/*: any*/) (v4/*: any*/)
], ],
"storageKey": null "storageKey": null
}, },
"action": "THROW" "action": "THROW"
}, },
(v6/*: any*/), (v5/*: any*/),
(v7/*: any*/) (v6/*: any*/)
], ],
"storageKey": "__MembershipsPage_memberships_connection(orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})" "storageKey": "__MembershipsPage_memberships_connection(orderBy:{\"direction\":\"ASC\",\"field\":\"ORGANIZATION_NAME\"})"
}, },
"action": "THROW" "action": "THROW"
}, },
@@ -217,7 +229,9 @@ return {
"kind": "RequiredField", "kind": "RequiredField",
"field": { "field": {
"alias": "pendingInvitations", "alias": "pendingInvitations",
"args": (v1/*: any*/), "args": [
(v7/*: any*/)
],
"concreteType": "InvitationConnection", "concreteType": "InvitationConnection",
"kind": "LinkedField", "kind": "LinkedField",
"name": "__MembershipsPage_pendingInvitations_connection", "name": "__MembershipsPage_pendingInvitations_connection",
@@ -241,24 +255,24 @@ return {
"name": "node", "name": "node",
"plural": false, "plural": false,
"selections": [ "selections": [
(v2/*: any*/), (v1/*: any*/),
{ {
"args": null, "args": null,
"kind": "FragmentSpread", "kind": "FragmentSpread",
"name": "InvitationCardFragment" "name": "InvitationCardFragment"
}, },
(v4/*: any*/) (v3/*: any*/)
], ],
"storageKey": null "storageKey": null
}, },
(v5/*: any*/) (v4/*: any*/)
], ],
"storageKey": null "storageKey": null
}, },
"action": "THROW" "action": "THROW"
}, },
(v6/*: any*/), (v5/*: any*/),
(v7/*: any*/) (v6/*: any*/)
], ],
"storageKey": "__MembershipsPage_pendingInvitations_connection(orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})" "storageKey": "__MembershipsPage_pendingInvitations_connection(orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})"
}, },
@@ -289,7 +303,7 @@ return {
"selections": [ "selections": [
{ {
"alias": null, "alias": null,
"args": (v8/*: any*/), "args": (v9/*: any*/),
"concreteType": "MembershipConnection", "concreteType": "MembershipConnection",
"kind": "LinkedField", "kind": "LinkedField",
"name": "memberships", "name": "memberships",
@@ -311,7 +325,7 @@ return {
"name": "node", "name": "node",
"plural": false, "plural": false,
"selections": [ "selections": [
(v2/*: any*/), (v1/*: any*/),
{ {
"alias": null, "alias": null,
"args": null, "args": null,
@@ -320,7 +334,7 @@ return {
"name": "lastSession", "name": "lastSession",
"plural": false, "plural": false,
"selections": [ "selections": [
(v2/*: any*/), (v1/*: any*/),
{ {
"alias": null, "alias": null,
"args": null, "args": null,
@@ -339,8 +353,8 @@ return {
"name": "organization", "name": "organization",
"plural": false, "plural": false,
"selections": [ "selections": [
(v1/*: any*/),
(v2/*: any*/), (v2/*: any*/),
(v3/*: any*/),
{ {
"alias": null, "alias": null,
"args": null, "args": null,
@@ -351,23 +365,23 @@ return {
], ],
"storageKey": null "storageKey": null
}, },
(v4/*: any*/) (v3/*: any*/)
], ],
"storageKey": null "storageKey": null
}, },
(v5/*: any*/) (v4/*: any*/)
], ],
"storageKey": null "storageKey": null
}, },
(v6/*: any*/), (v5/*: any*/),
(v7/*: any*/) (v6/*: any*/)
], ],
"storageKey": "memberships(first:1000,orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})" "storageKey": "memberships(first:1000,orderBy:{\"direction\":\"ASC\",\"field\":\"ORGANIZATION_NAME\"})"
}, },
{ {
"alias": null, "alias": null,
"args": (v8/*: any*/), "args": (v9/*: any*/),
"filters": (v9/*: any*/), "filters": (v10/*: any*/),
"handle": "connection", "handle": "connection",
"key": "MembershipsPage_memberships", "key": "MembershipsPage_memberships",
"kind": "LinkedHandle", "kind": "LinkedHandle",
@@ -375,7 +389,7 @@ return {
}, },
{ {
"alias": null, "alias": null,
"args": (v8/*: any*/), "args": (v11/*: any*/),
"concreteType": "InvitationConnection", "concreteType": "InvitationConnection",
"kind": "LinkedField", "kind": "LinkedField",
"name": "pendingInvitations", "name": "pendingInvitations",
@@ -397,7 +411,7 @@ return {
"name": "node", "name": "node",
"plural": false, "plural": false,
"selections": [ "selections": [
(v2/*: any*/), (v1/*: any*/),
{ {
"alias": null, "alias": null,
"args": null, "args": null,
@@ -420,41 +434,41 @@ return {
"name": "organization", "name": "organization",
"plural": false, "plural": false,
"selections": [ "selections": [
(v2/*: any*/), (v1/*: any*/),
(v3/*: any*/) (v2/*: any*/)
], ],
"storageKey": null "storageKey": null
}, },
(v4/*: any*/) (v3/*: any*/)
], ],
"storageKey": null "storageKey": null
}, },
(v5/*: any*/) (v4/*: any*/)
], ],
"storageKey": null "storageKey": null
}, },
(v6/*: any*/), (v5/*: any*/),
(v7/*: any*/) (v6/*: any*/)
], ],
"storageKey": "pendingInvitations(first:1000,orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})" "storageKey": "pendingInvitations(first:1000,orderBy:{\"direction\":\"DESC\",\"field\":\"CREATED_AT\"})"
}, },
{ {
"alias": null, "alias": null,
"args": (v8/*: any*/), "args": (v11/*: any*/),
"filters": (v9/*: any*/), "filters": (v10/*: any*/),
"handle": "connection", "handle": "connection",
"key": "MembershipsPage_pendingInvitations", "key": "MembershipsPage_pendingInvitations",
"kind": "LinkedHandle", "kind": "LinkedHandle",
"name": "pendingInvitations" "name": "pendingInvitations"
}, },
(v2/*: any*/) (v1/*: any*/)
], ],
"storageKey": null "storageKey": null
} }
] ]
}, },
"params": { "params": {
"cacheID": "a3dc3f3e775fa02b7d181fa57ade06b9", "cacheID": "9807cdf4aa713babb1639e4effd96e54",
"id": null, "id": null,
"metadata": { "metadata": {
"connection": [ "connection": [
@@ -480,11 +494,11 @@ return {
}, },
"name": "MembershipsPageQuery", "name": "MembershipsPageQuery",
"operationKind": "query", "operationKind": "query",
"text": "query MembershipsPageQuery {\n viewer {\n memberships(first: 1000, orderBy: {direction: DESC, field: CREATED_AT}) {\n edges {\n node {\n id\n ...MembershipCardFragment\n organization {\n name\n id\n }\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n pendingInvitations(first: 1000, orderBy: {direction: DESC, field: CREATED_AT}) {\n edges {\n node {\n id\n ...InvitationCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n id\n }\n}\n\nfragment InvitationCardFragment on Invitation {\n id\n role\n createdAt\n organization {\n id\n name\n }\n}\n\nfragment MembershipCardFragment on Membership {\n lastSession {\n id\n expiresAt\n }\n organization {\n id\n name\n logoUrl\n }\n}\n" "text": "query MembershipsPageQuery {\n viewer {\n memberships(first: 1000, orderBy: {direction: ASC, field: ORGANIZATION_NAME}) {\n edges {\n node {\n id\n ...MembershipCardFragment\n organization {\n name\n id\n }\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n pendingInvitations(first: 1000, orderBy: {direction: DESC, field: CREATED_AT}) {\n edges {\n node {\n id\n ...InvitationCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n id\n }\n}\n\nfragment InvitationCardFragment on Invitation {\n id\n role\n createdAt\n organization {\n id\n name\n }\n}\n\nfragment MembershipCardFragment on Membership {\n lastSession {\n id\n expiresAt\n }\n organization {\n id\n name\n logoUrl\n }\n}\n"
} }
}; };
})(); })();
(node as any).hash = "b21b9cae0ab7a4afdf12fb6ae516b64e"; (node as any).hash = "7956b20535004550c271e1a520c95fe4";
export default node; export default node;

View File

@@ -16,7 +16,10 @@ import { usePageTitle } from "@probo/hooks";
export const membershipsPageQuery = graphql` export const membershipsPageQuery = graphql`
query MembershipsPageQuery { query MembershipsPageQuery {
viewer @required(action: THROW) { viewer @required(action: THROW) {
memberships(first: 1000, orderBy: { direction: DESC, field: CREATED_AT }) memberships(
first: 1000
orderBy: { direction: ASC, field: ORGANIZATION_NAME }
)
@connection(key: "MembershipsPage_memberships") @connection(key: "MembershipsPage_memberships")
@required(action: THROW) { @required(action: THROW) {
__id __id

View File

@@ -6,8 +6,10 @@ import { MembershipsDropdownMenuItem } from "./MembershipsDropdownMenuItem";
export const membershipsDropdownMenuQuery = graphql` export const membershipsDropdownMenuQuery = graphql`
query MembershipsDropdownMenuQuery { query MembershipsDropdownMenuQuery {
viewer @required(action: THROW) { viewer @required(action: THROW) {
memberships(first: 1000, orderBy: { direction: DESC, field: CREATED_AT }) memberships(
@required(action: THROW) { first: 1000
orderBy: { direction: ASC, field: ORGANIZATION_NAME }
) @required(action: THROW) {
edges @required(action: THROW) { edges @required(action: THROW) {
node @required(action: THROW) { node @required(action: THROW) {
id id

View File

@@ -31,16 +31,17 @@ import (
type ( type (
Membership struct { Membership struct {
ID gid.GID `db:"id"` ID gid.GID `db:"id"`
IdentityID gid.GID `db:"identity_id"` IdentityID gid.GID `db:"identity_id"`
OrganizationID gid.GID `db:"organization_id"` OrganizationID gid.GID `db:"organization_id"`
Role MembershipRole `db:"role"` Role MembershipRole `db:"role"`
Source MembershipSource `db:"source"` Source MembershipSource `db:"source"`
State MembershipState `db:"state"` State MembershipState `db:"state"`
FullName string `db:"full_name"` FullName string `db:"full_name"`
EmailAddress mail.Addr `db:"email_address"` EmailAddress mail.Addr `db:"email_address"`
CreatedAt time.Time `db:"created_at"` OrganizationName string `db:"organization_name"`
UpdatedAt time.Time `db:"updated_at"` CreatedAt time.Time `db:"created_at"`
UpdatedAt time.Time `db:"updated_at"`
} }
Memberships []*Membership Memberships []*Membership
@@ -48,6 +49,8 @@ type (
func (m Membership) CursorKey(orderBy MembershipOrderField) page.CursorKey { func (m Membership) CursorKey(orderBy MembershipOrderField) page.CursorKey {
switch orderBy { switch orderBy {
case MembershipOrderFieldOrganizationName:
return page.NewCursorKey(m.ID, m.OrganizationName)
case MembershipOrderFieldFullName: case MembershipOrderFieldFullName:
return page.NewCursorKey(m.ID, m.FullName) return page.NewCursorKey(m.ID, m.FullName)
case MembershipOrderFieldEmailAddress: case MembershipOrderFieldEmailAddress:
@@ -88,11 +91,13 @@ SELECT
mbr.state, mbr.state,
COALESCE(mp.full_name, i.full_name, '') as full_name, COALESCE(mp.full_name, i.full_name, '') as full_name,
i.email_address, i.email_address,
o.name AS organization_name,
mbr.created_at, mbr.created_at,
mbr.updated_at mbr.updated_at
FROM FROM
mbr mbr
JOIN identities i ON mbr.identity_id = i.id JOIN identities i ON mbr.identity_id = i.id
JOIN organizations o ON mbr.organization_id = o.id
LEFT JOIN iam_membership_profiles mp ON mp.membership_id = mbr.id LEFT JOIN iam_membership_profiles mp ON mp.membership_id = mbr.id
` `
@@ -207,12 +212,15 @@ SELECT
mbr.state, mbr.state,
COALESCE(mp.full_name, i.full_name, '') as full_name, COALESCE(mp.full_name, i.full_name, '') as full_name,
i.email_address, i.email_address,
o.name as organization_name,
mbr.created_at, mbr.created_at,
mbr.updated_at mbr.updated_at
FROM FROM
mbr mbr
JOIN JOIN
identities i ON mbr.identity_id = i.id identities i ON mbr.identity_id = i.id
JOIN
organizations o ON mbr.organization_id = o.id
LEFT JOIN LEFT JOIN
iam_membership_profiles mp ON mp.membership_id = mbr.id iam_membership_profiles mp ON mp.membership_id = mbr.id
` `
@@ -314,12 +322,15 @@ SELECT
mbr.state, mbr.state,
COALESCE(mp.full_name, i.full_name, '') as full_name, COALESCE(mp.full_name, i.full_name, '') as full_name,
i.email_address, i.email_address,
o.name as organization_name,
mbr.created_at, mbr.created_at,
mbr.updated_at mbr.updated_at
FROM FROM
mbr mbr
JOIN JOIN
identities i ON mbr.identity_id = i.id identities i ON mbr.identity_id = i.id
JOIN
organizations o ON mbr.organization_id = o.id
LEFT JOIN LEFT JOIN
iam_membership_profiles mp ON mp.membership_id = mbr.id iam_membership_profiles mp ON mp.membership_id = mbr.id
` `
@@ -451,12 +462,15 @@ SELECT
mbr.state, mbr.state,
COALESCE(mp.full_name, i.full_name, '') as full_name, COALESCE(mp.full_name, i.full_name, '') as full_name,
i.email_address, i.email_address,
o.name as organization_name,
mbr.created_at, mbr.created_at,
mbr.updated_at mbr.updated_at
FROM FROM
mbr mbr
JOIN JOIN
identities i ON mbr.identity_id = i.id identities i ON mbr.identity_id = i.id
JOIN
organizations o ON mbr.organization_id = o.id
LEFT JOIN LEFT JOIN
iam_membership_profiles mp ON mp.membership_id = mbr.id iam_membership_profiles mp ON mp.membership_id = mbr.id
WHERE WHERE
@@ -504,12 +518,15 @@ WITH membership_with_profile AS (
m.state, m.state,
COALESCE(mp.full_name, i.full_name, '') AS full_name, COALESCE(mp.full_name, i.full_name, '') AS full_name,
i.email_address, i.email_address,
o.name as organization_name,
m.created_at, m.created_at,
m.updated_at m.updated_at
FROM FROM
iam_memberships m iam_memberships m
JOIN JOIN
identities i ON m.identity_id = i.id identities i ON m.identity_id = i.id
JOIN
organizations o ON mbr.organization_id = o.id
LEFT JOIN LEFT JOIN
iam_membership_profiles mp ON mp.membership_id = m.id iam_membership_profiles mp ON mp.membership_id = m.id
WHERE WHERE
@@ -632,6 +649,7 @@ SELECT
state, state,
'' as full_name, '' as full_name,
NULL as email_address, NULL as email_address,
'' as organization_name,
created_at, created_at,
updated_at updated_at
FROM FROM

View File

@@ -19,14 +19,17 @@ type (
) )
const ( const (
MembershipOrderFieldFullName MembershipOrderField = "FULL_NAME" MembershipOrderFieldOrganizationName MembershipOrderField = "ORGANIZATION_NAME"
MembershipOrderFieldEmailAddress MembershipOrderField = "EMAIL_ADDRESS" MembershipOrderFieldFullName MembershipOrderField = "FULL_NAME"
MembershipOrderFieldRole MembershipOrderField = "ROLE" MembershipOrderFieldEmailAddress MembershipOrderField = "EMAIL_ADDRESS"
MembershipOrderFieldCreatedAt MembershipOrderField = "CREATED_AT" MembershipOrderFieldRole MembershipOrderField = "ROLE"
MembershipOrderFieldCreatedAt MembershipOrderField = "CREATED_AT"
) )
func (p MembershipOrderField) Column() string { func (p MembershipOrderField) Column() string {
switch p { switch p {
case MembershipOrderFieldOrganizationName:
return "organization_name"
case MembershipOrderFieldFullName: case MembershipOrderFieldFullName:
return "full_name" return "full_name"
case MembershipOrderFieldEmailAddress: case MembershipOrderFieldEmailAddress:

View File

@@ -412,6 +412,10 @@ enum MembershipOrderField
@goEnum( @goEnum(
value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldFullName" value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldFullName"
) )
ORGANIZATION_NAME
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldOrganizationName"
)
EMAIL_ADDRESS EMAIL_ADDRESS
@goEnum( @goEnum(
value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldEmailAddress" value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldEmailAddress"

View File

@@ -2687,6 +2687,10 @@ enum MembershipOrderField
@goEnum( @goEnum(
value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldFullName" value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldFullName"
) )
ORGANIZATION_NAME
@goEnum(
value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldOrganizationName"
)
EMAIL_ADDRESS EMAIL_ADDRESS
@goEnum( @goEnum(
value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldEmailAddress" value: "go.probo.inc/probo/pkg/coredata.MembershipOrderFieldEmailAddress"
@@ -20088,16 +20092,18 @@ func (ec *executionContext) marshalNMembershipOrderField2goᚗproboᚗincᚋprob
var ( var (
unmarshalNMembershipOrderField2goᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐMembershipOrderField = map[string]coredata.MembershipOrderField{ unmarshalNMembershipOrderField2goᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐMembershipOrderField = map[string]coredata.MembershipOrderField{
"FULL_NAME": coredata.MembershipOrderFieldFullName, "FULL_NAME": coredata.MembershipOrderFieldFullName,
"EMAIL_ADDRESS": coredata.MembershipOrderFieldEmailAddress, "ORGANIZATION_NAME": coredata.MembershipOrderFieldOrganizationName,
"ROLE": coredata.MembershipOrderFieldRole, "EMAIL_ADDRESS": coredata.MembershipOrderFieldEmailAddress,
"CREATED_AT": coredata.MembershipOrderFieldCreatedAt, "ROLE": coredata.MembershipOrderFieldRole,
"CREATED_AT": coredata.MembershipOrderFieldCreatedAt,
} }
marshalNMembershipOrderField2goᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐMembershipOrderField = map[coredata.MembershipOrderField]string{ marshalNMembershipOrderField2goᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐMembershipOrderField = map[coredata.MembershipOrderField]string{
coredata.MembershipOrderFieldFullName: "FULL_NAME", coredata.MembershipOrderFieldFullName: "FULL_NAME",
coredata.MembershipOrderFieldEmailAddress: "EMAIL_ADDRESS", coredata.MembershipOrderFieldOrganizationName: "ORGANIZATION_NAME",
coredata.MembershipOrderFieldRole: "ROLE", coredata.MembershipOrderFieldEmailAddress: "EMAIL_ADDRESS",
coredata.MembershipOrderFieldCreatedAt: "CREATED_AT", coredata.MembershipOrderFieldRole: "ROLE",
coredata.MembershipOrderFieldCreatedAt: "CREATED_AT",
} }
) )