feat: save user processed markdown
This commit is contained in:
parent
626dce13dc
commit
b09e7c2db4
@ -20,6 +20,10 @@ func GetUserMarkdownCollection() *UserMarkdownCollection {
|
||||
return userMarkdownCollection
|
||||
}
|
||||
|
||||
func SetUserMarkdownCollection(collection UserMarkdownCollection) {
|
||||
userMarkdownCollection = &collection
|
||||
}
|
||||
|
||||
func (collection *UserMarkdownCollection) GetUserMarkdownByDocumentId(documentId string) *UserMarkdown {
|
||||
var foundUserMarkdown *UserMarkdown
|
||||
|
||||
|
@ -16,7 +16,7 @@ import {
|
||||
import { ipc } from '../../wailsjs/wailsjs/go/models'
|
||||
import { AddAreaProps, AreaProps, ProjectContextType, ProjectProps, UpdateDocumentRequest, UserProps } from './types'
|
||||
import makeDefaultProject from './makeDefaultProject'
|
||||
import { saveDocuments, saveGroups } from '../../useCases/saveData'
|
||||
import { saveDocuments, saveGroups, saveUserProcessedMarkdown } from '../../useCases/saveData'
|
||||
|
||||
const ProjectContext = createContext<ProjectContextType>(makeDefaultProject())
|
||||
|
||||
@ -97,6 +97,7 @@ export function ProjectProvider({ children, projectProps }: Props) {
|
||||
let response: ipc.UserMarkdown = new ipc.UserMarkdown()
|
||||
try {
|
||||
response = await RequestUpdateDocumentUserMarkdown(documentId, markdown)
|
||||
await saveUserProcessedMarkdown()
|
||||
} catch (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 () => {
|
||||
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 {
|
||||
saveDocuments,
|
||||
saveGroups,
|
||||
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 RequestSaveLocalUserProcessedMarkdownCollection():Promise<boolean>;
|
||||
|
||||
export function RequestSaveProcessedTextCollection():Promise<boolean>;
|
||||
|
||||
export function RequestUpdateArea(arg1:ipc.Area):Promise<ipc.Area>;
|
||||
|
@ -90,6 +90,10 @@ export function RequestSaveGroupCollection() {
|
||||
return window['go']['ipc']['Channel']['RequestSaveGroupCollection']();
|
||||
}
|
||||
|
||||
export function RequestSaveLocalUserProcessedMarkdownCollection() {
|
||||
return window['go']['ipc']['Channel']['RequestSaveLocalUserProcessedMarkdownCollection']();
|
||||
}
|
||||
|
||||
export function RequestSaveProcessedTextCollection() {
|
||||
return window['go']['ipc']['Channel']['RequestSaveProcessedTextCollection']();
|
||||
}
|
||||
|
@ -525,3 +525,27 @@ func (c *Channel) RequestSaveProcessedTextCollection() bool {
|
||||
successfulWrite := storage.WriteLocalProcessedAreaCollection(processedAreaCollectionToWrite, projectName)
|
||||
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,
|
||||
})
|
||||
|
||||
// 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
|
||||
}
|
||||
|
||||
|
@ -106,3 +106,13 @@ type LocalProcessedArea struct {
|
||||
type LocalProcessedAreaCollection struct {
|
||||
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
|
||||
}
|
||||
|
||||
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