Fix creating performer from gallery scrape dialog (#1320)

This commit is contained in:
peolic
2021-04-18 14:22:02 +03:00
committed by GitHub
parent cd0a9a1d62
commit 1759a99f65
3 changed files with 41 additions and 32 deletions

View File

@@ -14,6 +14,7 @@ import {
useStudioCreate,
usePerformerCreate,
useTagCreate,
makePerformerCreateInput,
} from "src/core/StashService";
import { useToast } from "src/hooks";
@@ -297,11 +298,11 @@ export const GalleryScrapeDialog: React.FC<IGalleryScrapeDialogProps> = (
}
async function createNewPerformer(toCreate: GQL.ScrapedScenePerformer) {
let performerInput: GQL.PerformerCreateInput = { name: "" };
const input = makePerformerCreateInput(toCreate);
try {
performerInput = Object.assign(performerInput, toCreate);
const result = await createPerformer({
variables: { input: performerInput },
variables: { input },
});
// add the new performer to the new performers value

View File

@@ -16,10 +16,10 @@ import {
usePerformerCreate,
useMovieCreate,
useTagCreate,
stringToGender,
makePerformerCreateInput,
} from "src/core/StashService";
import { useToast } from "src/hooks";
import { DurationUtils, filterData } from "src/utils";
import { DurationUtils } from "src/utils";
function renderScrapedStudio(
result: ScrapeResult<string>,
@@ -361,33 +361,7 @@ export const SceneScrapeDialog: React.FC<ISceneScrapeDialogProps> = (
}
async function createNewPerformer(toCreate: GQL.ScrapedScenePerformer) {
const input: GQL.PerformerCreateInput = {
name: toCreate.name,
url: toCreate.url,
gender: stringToGender(toCreate.gender),
birthdate: toCreate.birthdate,
ethnicity: toCreate.ethnicity,
country: toCreate.country,
eye_color: toCreate.eye_color,
height: toCreate.height,
measurements: toCreate.measurements,
fake_tits: toCreate.fake_tits,
career_length: toCreate.career_length,
tattoos: toCreate.tattoos,
piercings: toCreate.piercings,
aliases: toCreate.aliases,
twitter: toCreate.twitter,
instagram: toCreate.instagram,
tag_ids: filterData((toCreate.tags ?? []).map((t) => t.stored_id)),
image:
(toCreate.images ?? []).length > 0
? (toCreate.images ?? [])[0]
: undefined,
details: toCreate.details,
death_date: toCreate.death_date,
hair_color: toCreate.hair_color,
weight: toCreate.weight ? Number(toCreate.weight) : undefined,
};
const input = makePerformerCreateInput(toCreate);
try {
const result = await createPerformer({

View File

@@ -5,6 +5,7 @@ import {
getQueryDefinition,
getOperationName,
} from "@apollo/client/utilities";
import { filterData } from "../utils";
import { ListFilterModel } from "../models/list-filter/filter";
import * as GQL from "./generated-graphql";
@@ -972,6 +973,39 @@ export const stringToGender = (
export const getGenderStrings = () => Array.from(stringGenderMap.keys());
export const makePerformerCreateInput = (
toCreate: GQL.ScrapedScenePerformer
) => {
const input: GQL.PerformerCreateInput = {
name: toCreate.name,
url: toCreate.url,
gender: stringToGender(toCreate.gender),
birthdate: toCreate.birthdate,
ethnicity: toCreate.ethnicity,
country: toCreate.country,
eye_color: toCreate.eye_color,
height: toCreate.height,
measurements: toCreate.measurements,
fake_tits: toCreate.fake_tits,
career_length: toCreate.career_length,
tattoos: toCreate.tattoos,
piercings: toCreate.piercings,
aliases: toCreate.aliases,
twitter: toCreate.twitter,
instagram: toCreate.instagram,
tag_ids: filterData((toCreate.tags ?? []).map((t) => t.stored_id)),
image:
(toCreate.images ?? []).length > 0
? (toCreate.images ?? [])[0]
: undefined,
details: toCreate.details,
death_date: toCreate.death_date,
hair_color: toCreate.hair_color,
weight: toCreate.weight ? Number(toCreate.weight) : undefined,
};
return input;
};
export const stashBoxQuery = (searchVal: string, stashBoxIndex: number) =>
client?.query<
GQL.QueryStashBoxSceneQuery,