write files when uploading
							parent
							
								
									2c33c6cdcc
								
							
						
					
					
						commit
						5f3ed0e363
					
				| @ -0,0 +1,50 @@ | ||||
| (ns wanijo.instance.files | ||||
|   (:require [clojure.java.io :as io] | ||||
|             [wanijo.infra.sysconfig :refer [env]] | ||||
|             [wanijo.infra.neo4j :refer [uuid]]) | ||||
|   (:import [java.io File])) | ||||
| 
 | ||||
| (def files-home (str (env "WANIJO_HOME") "/files")) | ||||
| 
 | ||||
| (comment | ||||
|   (def files-home "/tmp/wanijo")) | ||||
| 
 | ||||
| (defn persist-files! [instance] | ||||
|   (doall | ||||
|     (for [file (->> (:properties instance) | ||||
|                     (filter #(= "file" (-> % :attribute :type))) | ||||
|                     (map (fn [prop] {:file (:value prop) | ||||
|                                      :uuid (:uuid prop)}))) | ||||
|           :let [uploaded-file (:file file) | ||||
|                 size (:size uploaded-file) | ||||
|                 uuid (if (empty? (:uuid file)) (uuid) (:uuid file)) | ||||
|                 path (str files-home "/" uuid)] | ||||
|           :when (> size 0)] | ||||
|       (do | ||||
|         (.mkdirs (io/file  files-home)) | ||||
|         (io/copy (io/file (:tempfile uploaded-file)) (io/file path)) | ||||
|         {:path path | ||||
|          :uuid uuid | ||||
|          :filename (:filename uploaded-file) | ||||
|          :content-type (:content-type uploaded-file)})))) | ||||
| 
 | ||||
| (comment | ||||
|   (let [instance {:name "Frank", | ||||
|                   :properties | ||||
|                   '({:attribute | ||||
|                      {:name "Dateidings", | ||||
|                       :created_at "20210929T154103.152Z", | ||||
|                       :type "file", | ||||
|                       :uuid "00847b4c-9961-47cd-a64f-18eaea0e362f", | ||||
|                       :required 0}, | ||||
|                      :value | ||||
|                      {:filename "2020.pdf", | ||||
|                       :content-type "application/pdf", | ||||
|                       :tempfile nil, | ||||
|                       :size 127785}, | ||||
|                      :uuid "f7d56f9c-e74a-4b12-95c1-f33961672072"}), | ||||
|                   :uuid "def4dacb-979f-4a0d-b1d6-535ac2a3f94b"}] | ||||
|     (->> (:properties instance) | ||||
|          (filter #(= "file" 1 #_(-> % :attribute :type))) #_(map (fn [prop] {:file (:value prop) | ||||
|                                                                              :uuid (:uuid prop)})))) | ||||
|   ) | ||||
					Loading…
					
					
				
		Reference in New Issue
	
	 Josha von Gizycki
						Josha von Gizycki