
* refact: generalized back end structs * refact: fixed front end type, removed dead code * removed test image folder * refact: removed dead structs
46 lines
1.4 KiB
TypeScript
46 lines
1.4 KiB
TypeScript
import { CreateNewProject, RequestChangeSessionProjectByName, RequestChooseUserAvatar, RequestUpdateCurrentUser } from '../../wailsjs/wailsjs/go/ipc/Channel'
|
|
import { ipc, entities } from '../../wailsjs/wailsjs/go/models'
|
|
import { UserProps } from './types'
|
|
|
|
type Dependencies = {
|
|
updateSession: () => Promise<entities.Session>
|
|
updateDocuments: () => Promise<ipc.GetDocumentsResponse>
|
|
}
|
|
|
|
const createSessionProviderMethods = (dependencies: Dependencies) => {
|
|
const { updateSession, updateDocuments } = dependencies
|
|
|
|
const createNewProject = async (name: string) => {
|
|
const sessionResponse = await CreateNewProject(name)
|
|
await updateSession()
|
|
return sessionResponse
|
|
}
|
|
|
|
const requestUpdateCurrentUser = async (userProps: UserProps) => {
|
|
const response = await RequestUpdateCurrentUser(new entities.User(userProps))
|
|
await updateSession()
|
|
return response
|
|
}
|
|
|
|
const requestChooseUserAvatar = async () => {
|
|
const filePathResponse = await RequestChooseUserAvatar()
|
|
return filePathResponse
|
|
}
|
|
|
|
const requestSelectProjectByName = async (name: string) => {
|
|
const successfulResponse = await RequestChangeSessionProjectByName(name)
|
|
await updateSession()
|
|
await updateDocuments()
|
|
return successfulResponse
|
|
}
|
|
|
|
return {
|
|
createNewProject,
|
|
requestUpdateCurrentUser,
|
|
requestChooseUserAvatar,
|
|
requestSelectProjectByName,
|
|
}
|
|
}
|
|
|
|
export default createSessionProviderMethods
|