traxxx/assets/js/stashes/actions.js

126 lines
2.4 KiB
JavaScript
Raw Normal View History

import {
graphql,
post,
del,
patch,
} from '../api';
import { releaseFields, actorStashesFields } from '../fragments';
import { curateStash } from '../curate';
function initStashesActions(store, _router) {
async function fetchStash(context, stashId) {
const { stash } = await graphql(`
query Stash(
$stashId: Int!
$hasAuth: Boolean!
$userId: Int
) {
stash(id: $stashId) {
id
name
slug
public
primary
user {
id
username
}
actors: stashesActors {
comment
actor {
id
name
slug
gender
age
ageFromBirth
dateOfBirth
birthCity
birthState
birthCountry: countryByBirthCountryAlpha2 {
alpha2
name
alias
}
avatar: avatarMedia {
id
path
thumbnail
lazy
isS3
width
height
}
${actorStashesFields}
}
}
scenes: stashesScenes {
comment
scene {
${releaseFields}
}
}
}
}
`, {
stashId: Number(stashId),
hasAuth: !!store.state.auth.user,
userId: store.state.auth.user?.id,
});
return curateStash(stash);
}
2021-03-20 01:49:17 +00:00
async function createStash(context, stash) {
return post('/stashes', stash);
2021-03-20 01:49:17 +00:00
}
async function updateStash(context, { stashId, stash }) {
return patch(`/stashes/${stashId}`, stash);
}
2021-03-20 22:03:13 +00:00
async function removeStash(context, stashId) {
await del(`/stashes/${stashId}`);
}
2021-03-15 02:30:47 +00:00
async function stashActor(context, { actorId, stashId }) {
return post(`/stashes/${stashId}/actors`, { actorId });
2021-03-15 02:30:47 +00:00
}
2021-03-15 02:30:47 +00:00
async function unstashActor(context, { actorId, stashId }) {
return del(`/stashes/${stashId}/actors/${actorId}`);
}
2021-03-17 01:09:34 +00:00
async function stashScene(context, { sceneId, stashId }) {
return post(`/stashes/${stashId}/scenes`, { sceneId });
2021-03-17 01:09:34 +00:00
}
async function unstashScene(context, { sceneId, stashId }) {
return del(`/stashes/${stashId}/scenes/${sceneId}`);
2021-03-17 01:09:34 +00:00
}
async function stashMovie(context, { movieId, stashId }) {
return post(`/stashes/${stashId}/movies`, { movieId });
}
async function unstashMovie(context, { movieId, stashId }) {
return del(`/stashes/${stashId}/movies/${movieId}`);
}
return {
2021-03-20 01:49:17 +00:00
createStash,
fetchStash,
2021-03-20 22:03:13 +00:00
removeStash,
2021-03-15 02:30:47 +00:00
stashActor,
2021-03-17 01:09:34 +00:00
stashScene,
stashMovie,
2021-03-15 02:30:47 +00:00
unstashActor,
2021-03-17 01:09:34 +00:00
unstashScene,
unstashMovie,
updateStash,
};
}
export default initStashesActions;