feat: save user processed markdown
This commit is contained in:
parent
626dce13dc
commit
b09e7c2db4
@ -20,6 +20,10 @@ func GetUserMarkdownCollection() *UserMarkdownCollection {
|
|||||||
return userMarkdownCollection
|
return userMarkdownCollection
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SetUserMarkdownCollection(collection UserMarkdownCollection) {
|
||||||
|
userMarkdownCollection = &collection
|
||||||
|
}
|
||||||
|
|
||||||
func (collection *UserMarkdownCollection) GetUserMarkdownByDocumentId(documentId string) *UserMarkdown {
|
func (collection *UserMarkdownCollection) GetUserMarkdownByDocumentId(documentId string) *UserMarkdown {
|
||||||
var foundUserMarkdown *UserMarkdown
|
var foundUserMarkdown *UserMarkdown
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ import {
|
|||||||
import { ipc } from '../../wailsjs/wailsjs/go/models'
|
import { ipc } from '../../wailsjs/wailsjs/go/models'
|
||||||
import { AddAreaProps, AreaProps, ProjectContextType, ProjectProps, UpdateDocumentRequest, UserProps } from './types'
|
import { AddAreaProps, AreaProps, ProjectContextType, ProjectProps, UpdateDocumentRequest, UserProps } from './types'
|
||||||
import makeDefaultProject from './makeDefaultProject'
|
import makeDefaultProject from './makeDefaultProject'
|
||||||
import { saveDocuments, saveGroups } from '../../useCases/saveData'
|
import { saveDocuments, saveGroups, saveUserProcessedMarkdown } from '../../useCases/saveData'
|
||||||
|
|
||||||
const ProjectContext = createContext<ProjectContextType>(makeDefaultProject())
|
const ProjectContext = createContext<ProjectContextType>(makeDefaultProject())
|
||||||
|
|
||||||
@ -97,6 +97,7 @@ export function ProjectProvider({ children, projectProps }: Props) {
|
|||||||
let response: ipc.UserMarkdown = new ipc.UserMarkdown()
|
let response: ipc.UserMarkdown = new ipc.UserMarkdown()
|
||||||
try {
|
try {
|
||||||
response = await RequestUpdateDocumentUserMarkdown(documentId, markdown)
|
response = await RequestUpdateDocumentUserMarkdown(documentId, markdown)
|
||||||
|
await saveUserProcessedMarkdown()
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err)
|
console.error(err)
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { RequestSaveDocumentCollection, RequestSaveGroupCollection, RequestSaveProcessedTextCollection } from '../wailsjs/wailsjs/go/ipc/Channel'
|
import { RequestSaveDocumentCollection, RequestSaveGroupCollection, RequestSaveLocalUserProcessedMarkdownCollection, RequestSaveProcessedTextCollection } from '../wailsjs/wailsjs/go/ipc/Channel'
|
||||||
|
|
||||||
const saveDocuments = async () => {
|
const saveDocuments = async () => {
|
||||||
try {
|
try {
|
||||||
@ -27,8 +27,18 @@ const saveProcessedText = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const saveUserProcessedMarkdown = async () => {
|
||||||
|
try {
|
||||||
|
const sucessfulSave = await RequestSaveLocalUserProcessedMarkdownCollection()
|
||||||
|
if (!sucessfulSave) console.error('Could not save LocalUserProcessedMarkdownCollection')
|
||||||
|
} catch (err) {
|
||||||
|
console.error('Could not save LocalUserProcessedMarkdownCollection: ', err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export {
|
export {
|
||||||
saveDocuments,
|
saveDocuments,
|
||||||
saveGroups,
|
saveGroups,
|
||||||
saveProcessedText,
|
saveProcessedText,
|
||||||
|
saveUserProcessedMarkdown,
|
||||||
}
|
}
|
2
frontend/wailsjs/wailsjs/go/ipc/Channel.d.ts
vendored
2
frontend/wailsjs/wailsjs/go/ipc/Channel.d.ts
vendored
@ -46,6 +46,8 @@ export function RequestSaveDocumentCollection():Promise<boolean>;
|
|||||||
|
|
||||||
export function RequestSaveGroupCollection():Promise<boolean>;
|
export function RequestSaveGroupCollection():Promise<boolean>;
|
||||||
|
|
||||||
|
export function RequestSaveLocalUserProcessedMarkdownCollection():Promise<boolean>;
|
||||||
|
|
||||||
export function RequestSaveProcessedTextCollection():Promise<boolean>;
|
export function RequestSaveProcessedTextCollection():Promise<boolean>;
|
||||||
|
|
||||||
export function RequestUpdateArea(arg1:ipc.Area):Promise<ipc.Area>;
|
export function RequestUpdateArea(arg1:ipc.Area):Promise<ipc.Area>;
|
||||||
|
@ -90,6 +90,10 @@ export function RequestSaveGroupCollection() {
|
|||||||
return window['go']['ipc']['Channel']['RequestSaveGroupCollection']();
|
return window['go']['ipc']['Channel']['RequestSaveGroupCollection']();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function RequestSaveLocalUserProcessedMarkdownCollection() {
|
||||||
|
return window['go']['ipc']['Channel']['RequestSaveLocalUserProcessedMarkdownCollection']();
|
||||||
|
}
|
||||||
|
|
||||||
export function RequestSaveProcessedTextCollection() {
|
export function RequestSaveProcessedTextCollection() {
|
||||||
return window['go']['ipc']['Channel']['RequestSaveProcessedTextCollection']();
|
return window['go']['ipc']['Channel']['RequestSaveProcessedTextCollection']();
|
||||||
}
|
}
|
||||||
|
@ -525,3 +525,27 @@ func (c *Channel) RequestSaveProcessedTextCollection() bool {
|
|||||||
successfulWrite := storage.WriteLocalProcessedAreaCollection(processedAreaCollectionToWrite, projectName)
|
successfulWrite := storage.WriteLocalProcessedAreaCollection(processedAreaCollectionToWrite, projectName)
|
||||||
return successfulWrite
|
return successfulWrite
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *Channel) RequestSaveLocalUserProcessedMarkdownCollection() bool {
|
||||||
|
userProcessedMarkdownCollection := document.GetUserMarkdownCollection()
|
||||||
|
projectName := c.GetCurrentSession().Project.Name
|
||||||
|
|
||||||
|
fullProject := storage.ReadLocalProjectByName(projectName)
|
||||||
|
|
||||||
|
if fullProject.Id == "" {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
var valuesToWrite []storage.LocalUserMarkdown
|
||||||
|
for _, v := range userProcessedMarkdownCollection.Values {
|
||||||
|
valuesToWrite = append(valuesToWrite, storage.LocalUserMarkdown(v))
|
||||||
|
}
|
||||||
|
|
||||||
|
successfulWrite := storage.WriteLocalUserProcessedMarkdownCollection(storage.LocalUserMarkdownCollection{
|
||||||
|
Values: valuesToWrite,
|
||||||
|
}, projectName)
|
||||||
|
|
||||||
|
return successfulWrite
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -272,6 +272,25 @@ func (c *Channel) RequestChangeSessionProjectByName(projectName string) bool {
|
|||||||
Areas: newAreas,
|
Areas: newAreas,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// UserProcessedMarkdown
|
||||||
|
|
||||||
|
localUserProcessedMarkdown := storage.ReadLocalUserProcessedMarkdownCollection(projectName)
|
||||||
|
|
||||||
|
newUserProcessedMarkdown := make([]document.UserMarkdown, 0)
|
||||||
|
for _, v := range localUserProcessedMarkdown.Values {
|
||||||
|
newUserProcessedMarkdown = append(newUserProcessedMarkdown, document.UserMarkdown{
|
||||||
|
Id: v.Id,
|
||||||
|
DocumentId: v.DocumentId,
|
||||||
|
Value: v.Value,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
document.SetUserMarkdownCollection(document.UserMarkdownCollection{
|
||||||
|
Values: newUserProcessedMarkdown,
|
||||||
|
})
|
||||||
|
|
||||||
|
// End UserProcessedMarkdown
|
||||||
|
|
||||||
return session.GetInstance().Project.Id == foundProject.Id
|
return session.GetInstance().Project.Id == foundProject.Id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,3 +106,13 @@ type LocalProcessedArea struct {
|
|||||||
type LocalProcessedAreaCollection struct {
|
type LocalProcessedAreaCollection struct {
|
||||||
Areas []LocalProcessedArea
|
Areas []LocalProcessedArea
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type LocalUserMarkdown struct {
|
||||||
|
Id string `json:"id"`
|
||||||
|
DocumentId string `json:"documentId"`
|
||||||
|
Value string `json:"value"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type LocalUserMarkdownCollection struct {
|
||||||
|
Values []LocalUserMarkdown `json:"values"`
|
||||||
|
}
|
||||||
|
@ -39,3 +39,38 @@ func ReadLocalProcessedAreaCollection(projectName string) LocalProcessedAreaColl
|
|||||||
|
|
||||||
return response
|
return response
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func WriteLocalUserProcessedMarkdownCollection(userMarkdownCollection LocalUserMarkdownCollection, projectName string) bool {
|
||||||
|
file, _ := json.MarshalIndent(userMarkdownCollection, "", " ")
|
||||||
|
path := GetLocalStoragePath()
|
||||||
|
|
||||||
|
if path == "" {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
subdirectory := "/projects/" + projectName
|
||||||
|
isLocalStorageDirectoryCreated := createLocalStorageSubDirIfNeeded(subdirectory)
|
||||||
|
if !isLocalStorageDirectoryCreated {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
err := os.WriteFile(GetLocalStoragePath()+subdirectory+"/UserProcessedMarkdown.json", file, 0644)
|
||||||
|
|
||||||
|
return err == nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func ReadLocalUserProcessedMarkdownCollection(projectName string) LocalUserMarkdownCollection {
|
||||||
|
file, err := os.ReadFile(GetLocalStoragePath() + "/projects/" + projectName + "/UserProcessedMarkdown.json")
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return LocalUserMarkdownCollection{}
|
||||||
|
}
|
||||||
|
|
||||||
|
response := LocalUserMarkdownCollection{}
|
||||||
|
errorUnmarshaling := json.Unmarshal([]byte(file), &response)
|
||||||
|
if errorUnmarshaling != nil {
|
||||||
|
return LocalUserMarkdownCollection{}
|
||||||
|
}
|
||||||
|
|
||||||
|
return response
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user