1
Fork 0

Start on initial wizard

This commit is contained in:
viktorstrate 2019-07-30 00:41:41 +02:00
parent 54929d6739
commit 7639a10d82
4 changed files with 95 additions and 3 deletions

View File

@ -38,9 +38,15 @@ const typeDefs = fs
import usersResolver from './resolvers/users' import usersResolver from './resolvers/users'
import scannerResolver from './resolvers/scanner' import scannerResolver from './resolvers/scanner'
import photosResolver from './resolvers/photos' import photosResolver from './resolvers/photos'
import siteInfoResolver from './resolvers/siteInfo'
import { isRawImage, getImageCachePath } from './scanner/utils' import { isRawImage, getImageCachePath } from './scanner/utils'
const resolvers = [usersResolver, scannerResolver, photosResolver] const resolvers = [
usersResolver,
scannerResolver,
photosResolver,
siteInfoResolver,
]
const schema = makeAugmentedSchema({ const schema = makeAugmentedSchema({
typeDefs, typeDefs,
@ -52,7 +58,13 @@ const schema = makeAugmentedSchema({
mutation: false, mutation: false,
query: true, query: true,
query: { query: {
exclude: ['ScannerResult', 'AuthorizeResult', 'Subscription', 'PhotoURL'], exclude: [
'ScannerResult',
'AuthorizeResult',
'Subscription',
'PhotoURL',
'SiteInfo',
],
}, },
}, },
resolvers: resolvers.reduce((prev, curr) => _.merge(prev, curr), {}), resolvers: resolvers.reduce((prev, curr) => _.merge(prev, curr), {}),

View File

@ -0,0 +1,71 @@
import { neo4jgraphql } from 'neo4j-graphql-js'
async function initialSetup(driver) {
const session = driver.session()
await session.run(
`MERGE (info:SiteInfo) ON CREATE SET info = {initialSettings}`,
{
initialSettings: {
initialSetup: true,
signupEnabled: false,
defaultRoot: '/tmp',
},
}
)
session.close()
}
const Query = {
async siteInfo(root, args, ctx, info) {
await initialSetup(ctx.driver)
return neo4jgraphql(root, args, ctx, info)
},
}
const Mutation = {
async initialSetupWizard(root, args, ctx, info) {
await initialSetup(ctx.driver)
const session = ctx.driver.session()
const result = await session.run(`MATCH (i:SiteInfo) RETURN i`)
const siteInfo = result.records[0].get('i').properties
if (siteInfo.initialSetup == false) {
return {
success: false,
status: 'Has already been setup',
token: null,
}
}
session.close()
await session.run(
`MERGE (info:SiteInfo) ON CREATE SET info = {initialSettings}`,
{
initialSettings: {
initialSetup: true,
signupEnabled: false,
},
}
)
session.close()
return {
success: true,
status: 'Setup successful',
token: null,
}
},
}
export default {
Query,
Mutation,
}

View File

@ -124,6 +124,8 @@ export default async function scanUser({ driver, scanAlbum }, user) {
return { foundImage: foundImageOrAlbum, newAlbums } return { foundImage: foundImageOrAlbum, newAlbums }
} }
await fs.mkdirp(user.rootPath)
await scanPath(user.rootPath) await scanPath(user.rootPath)
const session = driver.session() const session = driver.session()

View File

@ -62,6 +62,7 @@ type Photo {
type SiteInfo { type SiteInfo {
signupEnabled: Boolean! signupEnabled: Boolean!
initialSetup: Boolean! initialSetup: Boolean!
defaultRoot: String! @hasRole(roles: [Admin])
} }
type AuthorizeResult { type AuthorizeResult {
@ -72,7 +73,7 @@ type AuthorizeResult {
type ScannerResult { type ScannerResult {
finished: Boolean! finished: Boolean!
error: Boolean! success: Boolean!
errorMessage: String errorMessage: String
progress: Float progress: Float
} }
@ -88,6 +89,12 @@ type Mutation {
@neo4j_ignore @neo4j_ignore
scanAll: ScannerResult! @isAuthenticated @neo4j_ignore scanAll: ScannerResult! @isAuthenticated @neo4j_ignore
initialSetupWizard(
username: String!
password: String!
defaultRoot: String!
): AuthorizeResult @neo4j_ignore
} }
type Query { type Query {