✨ Self reference detection
This commit is contained in:
		
							
								
								
									
										53
									
								
								.idea/workspace.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										53
									
								
								.idea/workspace.xml
									
									
									
										generated
									
									
									
								
							@@ -4,7 +4,12 @@
 | 
				
			|||||||
    <option name="autoReloadType" value="ALL" />
 | 
					    <option name="autoReloadType" value="ALL" />
 | 
				
			||||||
  </component>
 | 
					  </component>
 | 
				
			||||||
  <component name="ChangeListManager">
 | 
					  <component name="ChangeListManager">
 | 
				
			||||||
    <list default="true" id="18dd0d68-b4b8-40db-9734-9119b5c848bd" name="更改" comment=":recycle: Moved onto dealer" />
 | 
					    <list default="true" id="18dd0d68-b4b8-40db-9734-9119b5c848bd" name="更改" comment=":recycle: Moved onto dealer">
 | 
				
			||||||
 | 
					      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
 | 
				
			||||||
 | 
					      <change beforePath="$PROJECT_DIR$/pkg/internal/models/attachments.go" beforeDir="false" afterPath="$PROJECT_DIR$/pkg/internal/models/attachments.go" afterDir="false" />
 | 
				
			||||||
 | 
					      <change beforePath="$PROJECT_DIR$/pkg/internal/services/analyzer.go" beforeDir="false" afterPath="$PROJECT_DIR$/pkg/internal/services/analyzer.go" afterDir="false" />
 | 
				
			||||||
 | 
					      <change beforePath="$PROJECT_DIR$/pkg/internal/services/attachments.go" beforeDir="false" afterPath="$PROJECT_DIR$/pkg/internal/services/attachments.go" afterDir="false" />
 | 
				
			||||||
 | 
					    </list>
 | 
				
			||||||
    <option name="SHOW_DIALOG" value="false" />
 | 
					    <option name="SHOW_DIALOG" value="false" />
 | 
				
			||||||
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
 | 
					    <option name="HIGHLIGHT_CONFLICTS" value="true" />
 | 
				
			||||||
    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
 | 
					    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
 | 
				
			||||||
@@ -33,28 +38,28 @@
 | 
				
			|||||||
    <option name="hideEmptyMiddlePackages" value="true" />
 | 
					    <option name="hideEmptyMiddlePackages" value="true" />
 | 
				
			||||||
    <option name="showLibraryContents" value="true" />
 | 
					    <option name="showLibraryContents" value="true" />
 | 
				
			||||||
  </component>
 | 
					  </component>
 | 
				
			||||||
  <component name="PropertiesComponent"><![CDATA[{
 | 
					  <component name="PropertiesComponent">{
 | 
				
			||||||
  "keyToString": {
 | 
					  "keyToString": {
 | 
				
			||||||
    "DefaultGoTemplateProperty": "Go File",
 | 
					    "DefaultGoTemplateProperty": "Go File",
 | 
				
			||||||
    "Go Build.Backend.executor": "Run",
 | 
					    "Go Build.Backend.executor": "Run",
 | 
				
			||||||
    "Go 构建.Backend.executor": "Run",
 | 
					    "Go 构建.Backend.executor": "Run",
 | 
				
			||||||
    "RunOnceActivity.ShowReadmeOnStart": "true",
 | 
					    "RunOnceActivity.ShowReadmeOnStart": "true",
 | 
				
			||||||
    "RunOnceActivity.go.formatter.settings.were.checked": "true",
 | 
					    "RunOnceActivity.go.formatter.settings.were.checked": "true",
 | 
				
			||||||
    "RunOnceActivity.go.migrated.go.modules.settings": "true",
 | 
					    "RunOnceActivity.go.migrated.go.modules.settings": "true",
 | 
				
			||||||
    "RunOnceActivity.go.modules.automatic.dependencies.download": "true",
 | 
					    "RunOnceActivity.go.modules.automatic.dependencies.download": "true",
 | 
				
			||||||
    "RunOnceActivity.go.modules.go.list.on.any.changes.was.set": "true",
 | 
					    "RunOnceActivity.go.modules.go.list.on.any.changes.was.set": "true",
 | 
				
			||||||
    "git-widget-placeholder": "master",
 | 
					    "git-widget-placeholder": "master",
 | 
				
			||||||
    "go.import.settings.migrated": "true",
 | 
					    "go.import.settings.migrated": "true",
 | 
				
			||||||
    "go.sdk.automatically.set": "true",
 | 
					    "go.sdk.automatically.set": "true",
 | 
				
			||||||
    "last_opened_file_path": "/Users/littlesheep/Documents/Projects/Hydrogen/Paperclip/pkg/internal/grpc",
 | 
					    "last_opened_file_path": "/Users/littlesheep/Documents/Projects/Hydrogen/Paperclip/pkg/internal/grpc",
 | 
				
			||||||
    "node.js.detected.package.eslint": "true",
 | 
					    "node.js.detected.package.eslint": "true",
 | 
				
			||||||
    "node.js.selected.package.eslint": "(autodetect)",
 | 
					    "node.js.selected.package.eslint": "(autodetect)",
 | 
				
			||||||
    "nodejs_package_manager_path": "npm",
 | 
					    "nodejs_package_manager_path": "npm",
 | 
				
			||||||
    "run.code.analysis.last.selected.profile": "pProject Default",
 | 
					    "run.code.analysis.last.selected.profile": "pProject Default",
 | 
				
			||||||
    "settings.editor.selected.configurable": "preferences.lookFeel",
 | 
					    "settings.editor.selected.configurable": "preferences.pluginManager",
 | 
				
			||||||
    "vue.rearranger.settings.migration": "true"
 | 
					    "vue.rearranger.settings.migration": "true"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}]]></component>
 | 
					}</component>
 | 
				
			||||||
  <component name="RecentsManager">
 | 
					  <component name="RecentsManager">
 | 
				
			||||||
    <key name="CopyFile.RECENT_KEYS">
 | 
					    <key name="CopyFile.RECENT_KEYS">
 | 
				
			||||||
      <recent name="$PROJECT_DIR$/pkg/internal/grpc" />
 | 
					      <recent name="$PROJECT_DIR$/pkg/internal/grpc" />
 | 
				
			||||||
@@ -83,8 +88,8 @@
 | 
				
			|||||||
  <component name="SharedIndexes">
 | 
					  <component name="SharedIndexes">
 | 
				
			||||||
    <attachedChunks>
 | 
					    <attachedChunks>
 | 
				
			||||||
      <set>
 | 
					      <set>
 | 
				
			||||||
        <option value="bundled-gosdk-33c477a475b1-e0158606a674-org.jetbrains.plugins.go.sharedIndexes.bundled-GO-241.18034.61" />
 | 
					        <option value="bundled-gosdk-5df93f7ad4aa-dfc284eb1eb8-org.jetbrains.plugins.go.sharedIndexes.bundled-GO-242.20224.306" />
 | 
				
			||||||
        <option value="bundled-js-predefined-1d06a55b98c1-0b3e54e931b4-JavaScript-GO-241.18034.61" />
 | 
					        <option value="bundled-js-predefined-d6986cc7102b-410509235cf1-JavaScript-GO-242.20224.306" />
 | 
				
			||||||
      </set>
 | 
					      </set>
 | 
				
			||||||
    </attachedChunks>
 | 
					    </attachedChunks>
 | 
				
			||||||
  </component>
 | 
					  </component>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,6 +25,7 @@ type Attachment struct {
 | 
				
			|||||||
	Metadata   datatypes.JSONMap `json:"metadata"`
 | 
						Metadata   datatypes.JSONMap `json:"metadata"`
 | 
				
			||||||
	IsMature   bool              `json:"is_mature"`
 | 
						IsMature   bool              `json:"is_mature"`
 | 
				
			||||||
	IsAnalyzed bool              `json:"is_analyzed"`
 | 
						IsAnalyzed bool              `json:"is_analyzed"`
 | 
				
			||||||
 | 
						IsSelfRef  bool              `json:"is_self_ref"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Ref   *Attachment `json:"ref"`
 | 
						Ref   *Attachment `json:"ref"`
 | 
				
			||||||
	RefID *uint       `json:"ref_id"`
 | 
						RefID *uint       `json:"ref_id"`
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -187,7 +187,7 @@ func AnalyzeAttachment(file models.Attachment) error {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	start = time.Now()
 | 
						start = time.Now()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Move temporary to permanet
 | 
						// Move temporary to permanent
 | 
				
			||||||
	if !linked {
 | 
						if !linked {
 | 
				
			||||||
		if err := ReUploadFileToPermanent(file); err != nil {
 | 
							if err := ReUploadFileToPermanent(file); err != nil {
 | 
				
			||||||
			return fmt.Errorf("unable to move file to permanet storage: %v", err)
 | 
								return fmt.Errorf("unable to move file to permanet storage: %v", err)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -109,6 +109,10 @@ func TryLinkAttachment(tx *gorm.DB, og models.Attachment, hash string) (bool, er
 | 
				
			|||||||
	og.Uuid = prev.Uuid
 | 
						og.Uuid = prev.Uuid
 | 
				
			||||||
	og.Destination = prev.Destination
 | 
						og.Destination = prev.Destination
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if og.AccountID == prev.AccountID {
 | 
				
			||||||
 | 
							og.IsSelfRef = true
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err := tx.Save(&og).Error; err != nil {
 | 
						if err := tx.Save(&og).Error; err != nil {
 | 
				
			||||||
		tx.Rollback()
 | 
							tx.Rollback()
 | 
				
			||||||
		return true, err
 | 
							return true, err
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user