From e8e2c45123c36466bb13e2d74be692fe6237cb7b Mon Sep 17 00:00:00 2001
From: root <Yorgo EL MOUBAYED>
Date: Thu, 6 May 2021 00:03:54 +0200
Subject: [PATCH] Latest: data registration works

---
 .../__pycache__/dataset_model.cpython-38.pyc  | Bin 1477 -> 1444 bytes
 dataproc/api/models/dataset_model.py          |   3 +-
 .../__pycache__/input_view.cpython-38.pyc     | Bin 7253 -> 8046 bytes
 dataproc/api/views/draft_view.py              |  40 ---------
 dataproc/api/views/input_view.py              |  77 +++++++++++++-----
 5 files changed, 58 insertions(+), 62 deletions(-)
 delete mode 100644 dataproc/api/views/draft_view.py

diff --git a/dataproc/api/models/__pycache__/dataset_model.cpython-38.pyc b/dataproc/api/models/__pycache__/dataset_model.cpython-38.pyc
index a1c781f084a6fd7750090641a9ba13b28d1fcfbd..a646800d024a192a6ce1ddf8419afe3ebe3ff2a5 100644
GIT binary patch
delta 86
zcmX@gy@Z=Ll$V!_0SG!aOiI|dkvE+Q%ykBe6l(#A$<0iv?2L0bgBdiLCU0cYnEZ+9
Ut%L|j0~ZS;8vMHXH}fe*00)r~DF6Tf

delta 120
zcmZ3&eUzIwl$V!_0SH=|dJ<M`<V|Pd=LYhefw))?NTe`MZe&vBWSYa7$r#L_$vk;2
zlZIrJcuHbPVsUCod|rM^YJ5RaenDzcNoH#C<f}|?Wh8*w7&w?1S<vBkmj9b?F`r@t
E0BgM*BLDyZ

diff --git a/dataproc/api/models/dataset_model.py b/dataproc/api/models/dataset_model.py
index 79a1a0c..1bfe01d 100644
--- a/dataproc/api/models/dataset_model.py
+++ b/dataproc/api/models/dataset_model.py
@@ -40,7 +40,8 @@ class Dataset(StructuredNode):
  		"""
  		
  		return {
- 		'dataset_node_properties': {
+ 		'dataset_node_properties': 
+ 		{
  		'uuid': self.uuid,
  		'fileTemplateName': self.fileTemplateName,
  		'userUuid': self.userUuid,
diff --git a/dataproc/api/views/__pycache__/input_view.cpython-38.pyc b/dataproc/api/views/__pycache__/input_view.cpython-38.pyc
index fd32ce80796652b91774bcbc8877a0bc43afa5ae..fde9d73423dbf99cb784ee7857d547e76d49149a 100644
GIT binary patch
delta 2809
zcmai0OKcle6rDF?&x{>=oWyZrCwA+kNn58a1V}$gLqnTy3H0MMw78|g^-R))!~<_8
z8*4&9$qMmnp9Dg5k*-h{AR)Sg?pReq6d^VvAysVH@DU5Pz`f6jCpfN>(VTmI@11w<
z=gqwQbmEUw+Eh3k6yWdEd$(WhKXOY;lF=^@^^rzH)(`5LHDQ(Hx^yxrWV+cr`FI6m
z6}X4sw$elp9ARG2$!p?=geGmWF2Zl=E?FiH(Zz(YEP|9kN+5k8eIWfH{UBwKGDroa
zQnu?V=&J2o_v?YXgb1iPDr%*VY}pZ4R?(<95|^su<1*m*xePiomvxT9Wyn#v3_E^^
z6yZq?G>K~w&}6RFJ0d)f-UiUh-bP1pM6@~Tu<(ku9I&GhA6PvKrZ;}En;=`LZk1dX
zCI!MTyGak~b#p`y>EZW8S$G*dR|H*y&PCX~m|e-$S++^@v&Oh-*{*NNGN>CUm_^H`
zO9eX@DVU3|FWGr}&Maa?PSf*te#l%{FbZg+*!fZ@J2G~5^3q5)eST=vl_w#7$tr0h
z+3a~V4NYaUBg3N`#PwPE8RJ|g=E{qPebdxkrb^K<dBL2W1zz7=amI8TFd^eYo?6B*
za9M`!#yr#Hwrn-eJOz2Pzk)G#J<!HXtu^9?Jtri^{%mMwpF~q^BG#U8TcE%q6tKDe
z&{nz3iMO$2>z<?=-HfQXU=1olt(hR}l@6@rV)K?+oW^EMBM~(4CU1{t##ZK{-fviO
zv#E*g#!7qn^Ks9GYZoew&V@aXS*V|J19L?f%(PjU*$`+qo0g`}3_yN@5+Wf{CEgVx
zLAb>K*;EN_n-_ROl15}g4>K!thf&}C%n?|LK7sHgLJz`I2u~wCgV2j`lwI);$TIc8
z54Pby+SH9!4u?=n09<45Xc>}VN%<i;!hV-~_CAX)PH_sgL4@ZJ;LR22F*cx_JbfJ1
z69|0>{Rk%kG9tw~-K~9#Z7UOctgR5R#vUl`>_;hfTm42Z6S9ZlxV%a6NF5y6jbi)e
zuSJsrn$M7iq}ZLn{R5SzxxQk4(a1>U8hIOsA$F_0w}L17cHyQGjIU~D5^P^Hr7lI1
zz?WiY>ON>e&J9u~DwhU^QWrZ7#Ro#+i@Wh?HF(;<_8r_7It4`}8g3_1CiR52!4~-y
z#&|V+eGqp*CQ#-c1)Yu|j3b;ycphN_;ROV~VZ0oBc#a7zKD<kgF8}6uuR?WO_Q2vl
z^F6kQ-P69WtBipTv-cw%t=oQM8s`wsBOGH7B4g!ARP8Z|?=hNzC|814teSE!IR0k2
z`h8?Cd$a!A6iyeWz=zD~M)>*wqqKoNQd?On8fUi}Mtk{OYc)L$!6E356#@mD-UwGK
zG@Yh_VvVggj;Hzh7r|Zb`F0X8mipMOM4BCpcF0+bnPeBD>5(Z=Gd}tfS}r5-49=id
zwY}QG)>bovcJ@Vlja_V-XxLfY=S>q^bpJGUK86m@<!ZVPuyxm@>)>=s^HB2+I(Vkk
z3uSh)wdTZ)a+$ccih$o|SGi#<n8jI(?kGHrF}2>Sec<S;naMuLWS%XzOt*QN)I&5(
z6&E`OP&&@jX^SWGUOImC@^oZ=4C#-_rq&ob;o0$;*>plSZ<7tylc+U_cN62fmw~U6
zL15M>8Z>VkHCpl_M)AH>?S(FIT&|f!7wpEAY=gg)Wk1CCC*fZqq4G}=;hL;VjySKZ
ztL)!+3z6AxvG@wT29Lnkf=|lJGl&_qAjA>MBfOcn@L=27G(Nox7+96>ez478zBrw&
zw+GHQk-tIUjS89lv<ZB!g8yyI6=!MxS2L~MBwc1d3@(0JQ9L{-e%dL1Z{dU2@9(&Z
zL!sCdicH(sc^-Jwx$3~8sV^-Ur?3X=5&%DgB{+}q_AV(Xi6l4-_W`&&*r8;%FQ|#+
EKd6{Hj{pDw

delta 2171
zcmai#T}&fY6vyXIr|k^=09s0+EznjJ%E}7tvV4dvZfSu~*ro+!NnEV$Six?)-VP?)
zuvwBd`(})L9(*t=_{M{Y8{dp38ee=PKKL?ECdQbUjXwHfjOR?dl+Rt7`So(|>HPoq
zoHKL(n*3$dx$JN>2>2IXc=(3W{gE@k#vff6W0o9C3z1%UkA1vh!euL7QM}44h;3n0
z$gy`sp3>N^i2s@P*j={Ga$>u1SFE&Z(zbY?F+nruOgU+T-Dj@}X@MCZW6r$6a+aL+
z1JNSfz?D@YC!?AIQ>IjpZb@qyZL3`Am|ILPF9p-f(P%84jxQ$?H-f3y%v^dYmWoZo
zW0Rj*K$Ze9B)P0yL|+jTJTUi2`vPx+3Cp^>3FicB1G9^=EQ)fIQ?$TAgV$}tX=5`L
z98{8;u*qOd>4cy))GqF!&26@6I$~MU%)1u&tg#F3SiiIR@kcyB=zt$P!;qCnJytH^
zgzm_z+IoqvXStfuRM?Y;Lv0jjpq)k@#1vlTAVRQ;tN{j^1Iz=V#un&RzGZ&+T^Z<p
z5f`~3)K8;}gqH}6(2c0{!@F__)*3wN7ig}B&`XFA`VbM3U%)TjR@O>9lULs^m9?ss
zLqEEQ*3@K%m(_GNY8Inb;j4xa8>*SQ4J)=p<XlSwq*wPfX!v?;YY#ll7liB{=keUY
zj^t+rL;13yykp<*IZU=L6*ITgh^d+tBmKj5VMsbguRl$X@}Oi(Ma;lf_EZ+!^(;i6
z#O%Nijt(|bbE3e%jt^brW}j6pRCf%YIxoHcEMaM@tn!nYch)tRarq(My6i+yQ#hH-
zWYNN!7#~Lie_&TAO*hBGxEfKa@-O3<PY_-qOcJgVrU<VRD7;n}*lU`ce3ngTE~90#
zr9wf?Y8$2E3B&M-<YQmJpK^pnVWIip$a63ZJ+83tuvFYA%rvRT2;Go%&CD6<CmPgb
zH0YYLQM|o{4^H;2H51~5u<od5>UuQ(4gBVMj>VzBbrNFk2VoM!ni!gfg;7Hj5$BD_
z3N@q$zW3W;*W&<ROFVXkBE|^EJ5X=I4k_a951W80^D_pP?Fg!j3qL-r3}37nh(nua
zHfX5N&>hdTFm}X3*fL9TbMTWV7@5amMB)jWSs)nJ25EHM8t77o_g9=h?Iej#4w_Ht
zg2OxiMCzuu`y8oDXGr}cg}i^CDV0L0_hG&*dWPKRZP)HqcSg6A3G`0Zt#7J@QZZlV
zr}pZg7-Pf7_o{nqWthf(EUWcu{D(g{z5gYg&61P=S6VahW&66no(y`Ts(ny>YmU?^
z(FpUtK&<Z9jB!=J7Ngs8=h!`~G=pY8bHF37hpia-N%-el>kjB;UF*d0n)t=px-gv^
zRbeHs7FCYt#u=%)Mo~t-j;9I|=1vwM?bcNci9F9;_@!G5rF?#)nCFqN?{xIBd%A@t
z@Ezo%`*;XLgv*2x!Z?A>L>?zB5|V@zfl|!r<maSvq%{pUbg=32#H~_ptDsI&CCc<u
ae1$RDWM_60ba%OxUOel(c)4M!tM7lmMxmMj

diff --git a/dataproc/api/views/draft_view.py b/dataproc/api/views/draft_view.py
deleted file mode 100644
index 5b61f33..0000000
--- a/dataproc/api/views/draft_view.py
+++ /dev/null
@@ -1,40 +0,0 @@
-@csrf_exempt
-def storeParseDataset(data):
-
-    """
-    Creates nodes for each dataset with relative properties
-    """
-
-    try:
-        logger.info('CHECK FUNCTION')
-        Dataset.create_or_update(uuid=data['uuid'],
-            userUuid=data['userUuid'], 
-            crystalUuid=data['crystalUuid'],
-            currentPath=data['currentPath'],
-            generationPath=data['generationPath'],
-            fileTemplateName=data['fileTemplateName'],
-            blStartingDate=data['blStartingDate'],
-            beamlineName=data['beamlineName'],
-            facilityName=data['facilityName'])
-        logger.info('CREATE OR UPDATE')
-
-#         # dataset.save()
-
-#         # if dataset == None:
-#         #     datasetNew = Dataset(uuid=data['uuid'],
-#         #         userUuid=data['userUuid'], 
-#         #         crystalUuid=data['crystalUuid'],
-#         #         currentPath=data['currentPath'],
-#         #         generationPath=data['generationPath'],
-#         #         fileTemplateName=data['fileTemplateName'],
-#         #         blStartingDate=data['blStartingDate'],
-#         #         beamlineName=data['beamlineName'],
-#         #         facilityName=data['facilityName'])
-
-#         #     datasetNew.save()
-        return JsonResponse({"Status": "INPUT REGISTERED"})
-        logger.info('RETURN')
-
-    except:
-        print(sys.exc_info()[0])
-        return ({"STATUS": "ERROR OCCURRED WHILE REGISTERING DATASET"})
\ No newline at end of file
diff --git a/dataproc/api/views/input_view.py b/dataproc/api/views/input_view.py
index 77ff165..ca361fa 100644
--- a/dataproc/api/views/input_view.py
+++ b/dataproc/api/views/input_view.py
@@ -31,33 +31,36 @@ def storeInput(request):
         json_data=json.loads(request.body)
         
         json_data_dataset=json_data['dataset']
-        # json_data_storagehost=json_data['storageHost']
-        # json_data_user=json_data['user']
-        # json_data_construct=json_data['construct']
-        # json_data_computationhost=json_data['computationHost']
-        # json_data_datacollection=json_data['dataCollection']
-        # json_data_ocf=json_data['OCF']
+        json_data_storagehost=json_data['storageHost']
+        json_data_user=json_data['user']
+        json_data_construct=json_data['construct']
+        json_data_computationhost=json_data['computationHost']
+        json_data_datacollection=json_data['dataCollection']
+        json_data_ocf=json_data['construct']['OCF']
 
         try:
             # Register nodes
             storeParseDataset(json_data_dataset)
-            # storeParseStorageHost(json_data_storagehost)
-            # storeParseUser(json_data_user)
-            # storeParseConstruct(json_data_construct)
-            # storeParseComputationHost(json_data_computationhost)
-            # storeParseDataCollection(json_data_datacollection)
-            # storeParseOCF(json_data_ocf)
+            storeParseStorageHost(json_data_storagehost)
+            storeParseUser(json_data_user)
+            storeParseConstruct(json_data_construct)
+            storeParseComputationHost(json_data_computationhost)
+            storeParseDataCollection(json_data_datacollection)
+            storeParseOCF(json_data_ocf)
 
             # Register relationships 
-            # connectConstructUser(json_data_construct, json_data_user)
-            # connectConstructStorageHost(json_data_construct, json_data_storagehost)
-            # connectConstructComputationHost(json_data_construct, json_data_computationhost)
-            # connectDatasetConstruct(json_data_dataset, json_data_construct)
-            # connectDatasetStorageHost(json_data_dataset, json_data_storagehost)
-            # connectDataCollectionDataset(json_data_datacollection, json_data_dataset)
+            connectConstructUser(json_data_construct, json_data_user)
+            connectConstructStorageHost(json_data_construct, json_data_storagehost)
+            connectConstructComputationHost(json_data_construct, json_data_computationhost)
+            connectDatasetConstruct(json_data_dataset, json_data_construct)
+            connectDatasetStorageHost(json_data_dataset, json_data_storagehost)
+            connectDataCollectionDataset(json_data_datacollection, json_data_dataset)
 
-            return JsonResponse({"Status": "INPUT SUCCESSFULLY REGISTERED"})
+            for input_ocf in json_data_ocf:
+                connectConstructOCF(json_data_construct, input_ocf)
 
+            return JsonResponse({"Status": "INPUT SUCCESSFULLY REGISTERED"})
+        
         except :
             return JsonResponse({"Status":"ERROR OCCURRED"}, safe=False)
 
@@ -69,7 +72,7 @@ def storeParseDataset(data):
     """
 
     try:
-        dataset=Dataset.get_or_create(uuid=data['uuid'],
+        dataset=Dataset(uuid=data['uuid'],
             userUuid=data['userUuid'], 
             crystalUuid=data['crystalUuid'],
             currentPath=data['currentPath'],
@@ -85,6 +88,22 @@ def storeParseDataset(data):
         print(sys.exc_info()[0])
         return ({"STATUS": "ERROR OCCURRED WHILE REGISTERING DATASET"})
 
+# @csrf_exempt
+# def storeParseDataset(data):
+
+#     """
+#     Creates nodes for each dataset with relative properties
+#     """
+
+#     try:
+#         # dataset=Dataset.create_or_update({"uuid": data['uuid']}, {"facilityName": data['facilityName']})
+#         Dataset.create_or_update(data.serialize)
+#         return dataset
+    
+#     except:
+#         print(sys.exc_info()[0])
+#         return ({"STATUS": "ERROR OCCURRED WHILE REGISTERING DATASET"})
+
 @csrf_exempt
 def storeParseStorageHost(data):
 
@@ -294,4 +313,20 @@ def connectDataCollectionDataset(data1, data2):
         return JsonResponse({"STATUS": datacollection.generates.connect(dataset)}, safe=False)
 
     except:
-        return JsonResponse({"STATUS": "ERROR OCCURRED WHILE CONNECTING DATA COLLECTION TO DATASET"}, safe=False)
\ No newline at end of file
+        return JsonResponse({"STATUS": "ERROR OCCURRED WHILE CONNECTING DATA COLLECTION TO DATASET"}, safe=False)
+
+@csrf_exempt
+def connectConstructOCF(data1, data2):
+    
+    """
+    Create a relationship between a construct and an ocf
+    """
+
+    try:
+        construct=Construct.nodes.get(uuid=data1["uuid"])
+        ocf=OCF.nodes.get(uuid=data2["uuid"])
+
+        return JsonResponse({"STATUS": construct.has_ocf.connect(ocf)}, safe=False)
+
+    except:
+        return JsonResponse({"STATUS": "ERROR OCCURRED WHILE CONNECTING DATA COLLECTION TO DATASET"}, safe=False)
-- 
GitLab