UNPKG

stashapp-api

Version:

Easy to use adapter for interaction with a Stash server through GraphQL.

172 lines (171 loc) 4.1 kB
// List of all queries and mutations from the schema const QUERY_METHODS = [ "findScenes", "findPerformers", "findStudios", "findTags", "findGalleries", "findGroups", "findImages", "findMovies", "findSceneMarkers", "findJobs", "config", "version", "latestVersion", "job", "gallery", "group", "image", "movie", "performer", "scene", "sceneMarker", "studio", "tag", ]; const MUTATION_METHODS = [ "addGalleryImages", "addGroupSubGroups", "addTempDLNAIP", "anonymiseDatabase", "backupDatabase", "bulkGalleryUpdate", "bulkGroupUpdate", "bulkImageUpdate", "bulkMovieUpdate", "bulkPerformerUpdate", "bulkSceneUpdate", "bulkTagUpdate", "configureDLNA", "configureDefaults", "configureGeneral", "configureInterface", "configurePlugin", "configureScraping", "configureUI", "configureUISetting", "deleteFiles", "destroySavedFilter", "disableDLNA", "downloadFFMpeg", "enableDLNA", "execSQL", "exportObjects", "fileSetFingerprints", "galleriesUpdate", "galleryChapterCreate", "galleryChapterDestroy", "galleryChapterUpdate", "galleryCreate", "galleryDestroy", "galleryUpdate", "generateAPIKey", "groupCreate", "groupDestroy", "groupUpdate", "groupsDestroy", "imageDecrementO", "imageDestroy", "imageIncrementO", "imageResetO", "imageUpdate", "imagesDestroy", "imagesUpdate", "importObjects", "installPackages", "metadataAutoTag", "metadataClean", "metadataCleanGenerated", "metadataExport", "metadataGenerate", "metadataIdentify", "metadataImport", "metadataScan", "migrate", "migrateBlobs", "migrateHashNaming", "migrateSceneScreenshots", "moveFiles", "movieCreate", "movieDestroy", "movieUpdate", "moviesDestroy", "optimiseDatabase", "performerCreate", "performerDestroy", "performerUpdate", "performersDestroy", "querySQL", "reloadPlugins", "reloadScrapers", "removeGalleryImages", "removeGroupSubGroups", "removeTempDLNAIP", "reorderSubGroups", "resetGalleryCover", "runPluginOperation", "runPluginTask", "saveFilter", "sceneAddO", "sceneAddPlay", "sceneAssignFile", "sceneCreate", "sceneDecrementO", "sceneDeleteO", "sceneDeletePlay", "sceneDestroy", "sceneGenerateScreenshot", "sceneIncrementO", "sceneIncrementPlayCount", "sceneMarkerCreate", "sceneMarkerDestroy", "sceneMarkerUpdate", "sceneMarkersDestroy", "sceneMerge", "sceneResetActivity", "sceneResetO", "sceneResetPlayCount", "sceneSaveActivity", "sceneUpdate", "scenesDestroy", "scenesUpdate", "setDefaultFilter", "setGalleryCover", "setPluginsEnabled", "setup", "stashBoxBatchPerformerTag", "stashBoxBatchStudioTag", "stopAllJobs", "stopJob", "studioCreate", "studioDestroy", "studioUpdate", "studiosDestroy", "submitStashBoxFingerprints", "submitStashBoxPerformerDraft", "submitStashBoxSceneDraft", "tagCreate", "tagDestroy", "tagUpdate", "tagsDestroy", "tagsMerge", "uninstallPackages", "updatePackages", ]; export function attachStashMethods(target, client) { for (const method of QUERY_METHODS) { target[method] = async (variables) => { // In a real implementation, you would use codegen to generate the query string and types // For now, this is a placeholder const query = `query ${method}($input: ...) { ${method}(input: $input) { ...fields } }`; return client.request(query, variables); }; } for (const method of MUTATION_METHODS) { target[method] = async (variables) => { const mutation = `mutation ${method}($input: ...) { ${method}(input: $input) { ...fields } }`; return client.request(mutation, variables); }; } }