Added aliases and stashes to GraphQL actor.
This commit is contained in:
@@ -70,7 +70,13 @@ export function curateActor(actor, context = {}) {
|
|||||||
id: actor.id,
|
id: actor.id,
|
||||||
slug: actor.slug,
|
slug: actor.slug,
|
||||||
name: actor.name,
|
name: actor.name,
|
||||||
aliases: actor.aliases || [], // used for profile pages
|
aliases: actor.aliases?.map((alias) => ({
|
||||||
|
id: alias.id,
|
||||||
|
slug: alias.slug,
|
||||||
|
name: alias.name,
|
||||||
|
entityId: alias.entity_id,
|
||||||
|
entity: alias.entity,
|
||||||
|
})) || [], // used for profile pages
|
||||||
alias: actor.alias
|
alias: actor.alias
|
||||||
? {
|
? {
|
||||||
id: actor.alias.id,
|
id: actor.alias.id,
|
||||||
@@ -246,11 +252,13 @@ export async function fetchActorsById(actorIds, options = {}, reqUser) {
|
|||||||
knex.raw('COALESCE(residence_countries.alias, residence_countries.name) as residence_country_name'),
|
knex.raw('COALESCE(residence_countries.alias, residence_countries.name) as residence_country_name'),
|
||||||
knex.raw('row_to_json(entities) as entity'),
|
knex.raw('row_to_json(entities) as entity'),
|
||||||
knex.raw('row_to_json(sfw_media) as sfw_avatar'),
|
knex.raw('row_to_json(sfw_media) as sfw_avatar'),
|
||||||
knex.raw('json_agg(aliases) filter (where aliases.id is not null) as aliases'),
|
// knex.raw('json_agg(aliases) filter (where aliases.id is not null) as aliases'),
|
||||||
|
knex.raw('json_agg(row_to_json(aliases)::jsonb || jsonb_build_object(\'entity\', row_to_json(alias_entities))) filter (where aliases.id is not null) as aliases'),
|
||||||
knex.raw('row_to_json(media_biometrics) as biometrics'),
|
knex.raw('row_to_json(media_biometrics) as biometrics'),
|
||||||
)
|
)
|
||||||
.leftJoin('actors_meta', 'actors_meta.actor_id', 'actors.id')
|
.leftJoin('actors_meta', 'actors_meta.actor_id', 'actors.id')
|
||||||
.leftJoin('actors as aliases', 'aliases.alias_for', 'actors.id')
|
.leftJoin('actors as aliases', 'aliases.alias_for', 'actors.id')
|
||||||
|
.leftJoin('entities as alias_entities', 'alias_entities.id', 'aliases.entity_id')
|
||||||
.leftJoin('countries as birth_countries', 'birth_countries.alpha2', 'actors.birth_country_alpha2')
|
.leftJoin('countries as birth_countries', 'birth_countries.alpha2', 'actors.birth_country_alpha2')
|
||||||
.leftJoin('countries as residence_countries', 'residence_countries.alpha2', 'actors.residence_country_alpha2')
|
.leftJoin('countries as residence_countries', 'residence_countries.alpha2', 'actors.residence_country_alpha2')
|
||||||
.leftJoin('media as avatars', 'avatars.id', 'actors.avatar_media_id')
|
.leftJoin('media as avatars', 'avatars.id', 'actors.avatar_media_id')
|
||||||
|
|||||||
@@ -108,8 +108,11 @@ export const actorsSchema = `
|
|||||||
hasTattoos: Boolean
|
hasTattoos: Boolean
|
||||||
tattoos: String
|
tattoos: String
|
||||||
piercings: String
|
piercings: String
|
||||||
|
entity: Entity
|
||||||
|
aliases: [Actor!]!
|
||||||
scenes: Int
|
scenes: Int
|
||||||
likes: Int
|
likes: Int
|
||||||
|
stashes: [Stash!]!
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
@@ -154,7 +157,7 @@ export async function fetchActorsGraphql(query, req) {
|
|||||||
page: query.page,
|
page: query.page,
|
||||||
order: getOrder(query),
|
order: getOrder(query),
|
||||||
aggregateCountries: false,
|
aggregateCountries: false,
|
||||||
});
|
}, req.user);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
nodes: actors.map((actor) => curateGraphqlActor(actor)),
|
nodes: actors.map((actor) => curateGraphqlActor(actor)),
|
||||||
|
|||||||
Reference in New Issue
Block a user