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