diff --git a/.db/docker-compose.yml b/.db/docker-compose.yml index 66111141..af100359 100644 --- a/.db/docker-compose.yml +++ b/.db/docker-compose.yml @@ -4,11 +4,11 @@ version: '3.1' services: db: - image: mysql - command: --default-authentication-plugin=mysql_native_password + image: mariadb + # command: --default-authentication-plugin=mysql_native_password restart: always - volumes: - - ./mysql-dump:/docker-entrypoint-initdb.d + # volumes: + # - ./mysql-dump:/docker-entrypoint-initdb.d environment: MYSQL_ROOT_PASSWORD: example ports: diff --git a/package-lock.json b/package-lock.json index 723ffa2a..79fed13b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3424,18 +3424,18 @@ "dev": true }, "node_modules/elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dev": true, "dependencies": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", + "bn.js": "^4.11.9", + "brorand": "^1.1.0", "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } }, "node_modules/elliptic/node_modules/bn.js": { @@ -9777,9 +9777,9 @@ } }, "node_modules/y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "node_modules/yallist": { @@ -12939,18 +12939,18 @@ "dev": true }, "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dev": true, "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", + "bn.js": "^4.11.9", + "brorand": "^1.1.0", "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" }, "dependencies": { "bn.js": { @@ -18276,9 +18276,9 @@ "dev": true }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "yallist": { diff --git a/src/Server/Docs/DocsFunctions.fs b/src/Server/Docs/DocsFunctions.fs index fa6658a5..a8190389 100644 --- a/src/Server/Docs/DocsFunctions.fs +++ b/src/Server/Docs/DocsFunctions.fs @@ -132,7 +132,6 @@ module PredefinedParams = let ontologyInfoExmp2:OntologyInfo = OntologyInfo.create "Q TRAP" "MS:1000187" let unitOntologyExmp:DbDomain.Ontology = { - ID = 1L Name = "uo" CurrentVersion = "releases/2020-03-10" Definition = "Unit Ontology" diff --git a/src/Server/OntologyDB.fs b/src/Server/OntologyDB.fs index 2d657f47..5982add0 100644 --- a/src/Server/OntologyDB.fs +++ b/src/Server/OntologyDB.fs @@ -37,9 +37,7 @@ SELECT max(ID) FROM Ontology""" use reader = insertOntologyCmd.ExecuteReader() match reader.Read() with | true -> - let identity = reader.GetInt64(0) DbDomain.createOntology - identity name currentVersion definition @@ -48,7 +46,7 @@ SELECT max(ID) FROM Ontology""" | false -> failwith "Inserting ontology failed." -let insertTerm cString (accession:string) (ontologyID:int64) (name:string) (definition:string) (xrefvaluetype: string option) (isObsolete:bool) = +let insertTerm cString (accession:string) (ontologyName:string) (name:string) (definition:string) (xrefvaluetype: string option) (isObsolete:bool) = use connection = establishConnection cString connection.Open() @@ -56,19 +54,19 @@ let insertTerm cString (accession:string) (ontologyID:int64) (name:string) (defi insertTermCmd .CommandText <-""" -INSERT INTO Term (Accession,OntologyID,Name,Definition,XRefValueType,IsObsolete) +INSERT INTO Term (Accession,FK_OntologyName,Name,Definition,XRefValueType,IsObsolete) VALUES (@acc,@ontId,@name,@def,@xrv,@iO); SELECT max(ID) FROM Term""" let accessionParam = insertTermCmd.Parameters.Add("acc",MySqlDbType.VarChar) - let ontologyIDParam = insertTermCmd.Parameters.Add("ontId",MySqlDbType.Int64) + let ontologyNameParam = insertTermCmd.Parameters.Add("ontId",MySqlDbType.VarChar) let nameParam = insertTermCmd.Parameters.Add("name",MySqlDbType.VarChar) let definitionParam = insertTermCmd.Parameters.Add("def",MySqlDbType.VarChar) let xRefValueTypeParam = insertTermCmd.Parameters.Add("xrv",MySqlDbType.VarChar) let isObsoleteParam = insertTermCmd.Parameters.Add("iO",MySqlDbType.Bit) accessionParam .Value <- accession - ontologyIDParam .Value <- ontologyID + ontologyNameParam .Value <- ontologyName nameParam .Value <- name definitionParam .Value <- definition isObsoleteParam .Value <- isObsolete @@ -79,11 +77,9 @@ SELECT max(ID) FROM Term""" use reader = insertTermCmd.ExecuteReader() match reader.Read() with | true -> - let identity = reader.GetInt64(0) DbDomain.createTerm - identity accession - ontologyID + ontologyName name definition xrefvaluetype @@ -118,16 +114,15 @@ let getTermSuggestions cString (query:string) = while reader.Read() do yield DbDomain.createTerm - (reader.GetInt64(0)) + (reader.GetString(0)) (reader.GetString(1)) - (reader.GetInt64(2)) + (reader.GetString(2)) (reader.GetString(3)) - (reader.GetString(4)) - (if (reader.IsDBNull(5)) then + (if (reader.IsDBNull(4)) then None else - Some (reader.GetString(5))) - (reader.GetBoolean(6)) + Some (reader.GetString(4))) + (reader.GetBoolean(5)) |] let getTermSuggestionsByParentTerm cString (query:string, parentTerm:string) = @@ -148,16 +143,15 @@ let getTermSuggestionsByParentTerm cString (query:string, parentTerm:string) = while reader.Read() do yield DbDomain.createTerm - (reader.GetInt64(0)) + (reader.GetString(0)) (reader.GetString(1)) - (reader.GetInt64(2)) + (reader.GetString(2)) (reader.GetString(3)) - (reader.GetString(4)) - (if (reader.IsDBNull(5)) then + (if (reader.IsDBNull(4)) then None else - Some (reader.GetString(5))) - (reader.GetBoolean(6)) + Some (reader.GetString(4))) + (reader.GetBoolean(5)) |] let getTermSuggestionsByChildTerm cString (query:string, childTerm:string) = @@ -178,16 +172,15 @@ let getTermSuggestionsByChildTerm cString (query:string, childTerm:string) = while reader.Read() do yield DbDomain.createTerm - (reader.GetInt64(0)) + (reader.GetString(0)) (reader.GetString(1)) - (reader.GetInt64(2)) + (reader.GetString(2)) (reader.GetString(3)) - (reader.GetString(4)) - (if (reader.IsDBNull(5)) then + (if (reader.IsDBNull(4)) then None else - Some (reader.GetString(5))) - (reader.GetBoolean(6)) + Some (reader.GetString(4))) + (reader.GetBoolean(5)) |] let getTermByParentTermOntologyInfo cString (query:string, parentTerm:OntologyInfo) = @@ -219,16 +212,15 @@ let getTermByParentTermOntologyInfo cString (query:string, parentTerm:OntologyIn while reader.Read() do yield DbDomain.createTerm - (reader.GetInt64(0)) + (reader.GetString(0)) (reader.GetString(1)) - (reader.GetInt64(2)) + (reader.GetString(2)) (reader.GetString(3)) - (reader.GetString(4)) - (if (reader.IsDBNull(5)) then + (if (reader.IsDBNull(4)) then None else - Some (reader.GetString(5))) - (reader.GetBoolean(6)) + Some (reader.GetString(4))) + (reader.GetBoolean(5)) |] let getAllTermsByParentTermOntologyInfo cString (parentTerm:OntologyInfo) = @@ -258,16 +250,15 @@ let getAllTermsByParentTermOntologyInfo cString (parentTerm:OntologyInfo) = while reader.Read() do yield DbDomain.createTerm - (reader.GetInt64(0)) + (reader.GetString(0)) (reader.GetString(1)) - (reader.GetInt64(2)) + (reader.GetString(2)) (reader.GetString(3)) - (reader.GetString(4)) - (if (reader.IsDBNull(5)) then + (if (reader.IsDBNull(4)) then None else - Some (reader.GetString(5))) - (reader.GetBoolean(6)) + Some (reader.GetString(4))) + (reader.GetBoolean(5)) |] let getAllTermsByChildTermOntologyInfo cString (childTerm:OntologyInfo) = @@ -297,16 +288,15 @@ let getAllTermsByChildTermOntologyInfo cString (childTerm:OntologyInfo) = while reader.Read() do yield DbDomain.createTerm - (reader.GetInt64(0)) + (reader.GetString(0)) (reader.GetString(1)) - (reader.GetInt64(2)) + (reader.GetString(2)) (reader.GetString(3)) - (reader.GetString(4)) - (if (reader.IsDBNull(5)) then + (if (reader.IsDBNull(4)) then None else - Some (reader.GetString(5))) - (reader.GetBoolean(6)) + Some (reader.GetString(4))) + (reader.GetBoolean(5)) |] let getTermSuggestionsByParentTermAndAccession cString (query:string, parentTerm:string, parentTermAccession:string) = @@ -329,16 +319,15 @@ let getTermSuggestionsByParentTermAndAccession cString (query:string, parentTerm while reader.Read() do yield DbDomain.createTerm - (reader.GetInt64(0)) + (reader.GetString(0)) (reader.GetString(1)) - (reader.GetInt64(2)) + (reader.GetString(2)) (reader.GetString(3)) - (reader.GetString(4)) - (if (reader.IsDBNull(5)) then + (if (reader.IsDBNull(4)) then None else - Some (reader.GetString(5))) - (reader.GetBoolean(6)) + Some (reader.GetString(4))) + (reader.GetBoolean(5)) |] let getTermSuggestionsByChildTermAndAccession cString (query:string, childTerm:string, childTermAccession:string) = @@ -361,16 +350,15 @@ let getTermSuggestionsByChildTermAndAccession cString (query:string, childTerm:s while reader.Read() do yield DbDomain.createTerm - (reader.GetInt64(0)) + (reader.GetString(0)) (reader.GetString(1)) - (reader.GetInt64(2)) + (reader.GetString(2)) (reader.GetString(3)) - (reader.GetString(4)) - (if (reader.IsDBNull(5)) then + (if (reader.IsDBNull(4)) then None else - Some (reader.GetString(5))) - (reader.GetBoolean(6)) + Some (reader.GetString(4))) + (reader.GetBoolean(5)) |] let getUnitTermSuggestions cString (query:string) = @@ -390,16 +378,15 @@ let getUnitTermSuggestions cString (query:string) = while reader.Read() do yield DbDomain.createTerm - (reader.GetInt64(0)) + (reader.GetString(0)) (reader.GetString(1)) - (reader.GetInt64(2)) + (reader.GetString(2)) (reader.GetString(3)) - (reader.GetString(4)) - (if (reader.IsDBNull(5)) then + (if (reader.IsDBNull(4)) then None else - Some (reader.GetString(5))) - (reader.GetBoolean(6)) + Some (reader.GetString(4))) + (reader.GetBoolean(5)) |] let getTermByName cString (queryStr:string) = @@ -421,16 +408,15 @@ let getTermByName cString (queryStr:string) = [| while reader.Read() do DbDomain.createTerm - (reader.GetInt64(0)) - (reader.GetString(1)) - (reader.GetInt64(2)) - (reader.GetString(3)) - (reader.GetString(4)) - (if (reader.IsDBNull(5)) then - None - else - Some (reader.GetString(5))) - (reader.GetBoolean(6)) + (reader.GetString(0)) + (reader.GetString(1)) + (reader.GetString(2)) + (reader.GetString(3)) + (if (reader.IsDBNull(4)) then + None + else + Some (reader.GetString(4))) + (reader.GetBoolean(5)) |] let getTermByNameAndAccession cString (queryStr:string,accessionString:string) = @@ -456,16 +442,15 @@ let getTermByNameAndAccession cString (queryStr:string,accessionString:string) = [| while reader.Read() do DbDomain.createTerm - (reader.GetInt64(0)) - (reader.GetString(1)) - (reader.GetInt64(2)) - (reader.GetString(3)) - (reader.GetString(4)) - (if (reader.IsDBNull(5)) then - None - else - Some (reader.GetString(5))) - (reader.GetBoolean(6)) + (reader.GetString(0)) + (reader.GetString(1)) + (reader.GetString(2)) + (reader.GetString(3)) + (if (reader.IsDBNull(4)) then + None + else + Some (reader.GetString(4))) + (reader.GetBoolean(5)) |] let getTermByAccession cString (queryStr:string) = @@ -488,16 +473,15 @@ let getTermByAccession cString (queryStr:string) = while reader.Read() do yield DbDomain.createTerm - (reader.GetInt64(0)) + (reader.GetString(0)) (reader.GetString(1)) - (reader.GetInt64(2)) + (reader.GetString(2)) (reader.GetString(3)) - (reader.GetString(4)) - (if (reader.IsDBNull(5)) then + (if (reader.IsDBNull(4)) then None else - Some (reader.GetString(5))) - (reader.GetBoolean(6)) + Some (reader.GetString(4))) + (reader.GetBoolean(5)) |] let getAllOntologies cString () = @@ -512,12 +496,11 @@ let getAllOntologies cString () = while reader.Read() do yield DbDomain.createOntology - (reader.GetInt64(0)) + (reader.GetString(0)) (reader.GetString(1)) (reader.GetString(2)) - (reader.GetString(3)) - (reader.GetDateTime(4)) // TODO: - (reader.GetString(5)) + (reader.GetDateTime(3)) // TODO: + (reader.GetString(4)) |] let getAdvancedTermSearchResults cString (ont : DbDomain.Ontology option) (searchName : string) (mustContainName:string) (searchDef:string) (mustContainDef:string) (keepObsolete:bool) = @@ -527,16 +510,16 @@ let getAdvancedTermSearchResults cString (ont : DbDomain.Ontology option) (searc use advancedTermSearchCmd = new MySqlCommand("advancedTermSearch",connection) advancedTermSearchCmd.CommandType <- CommandType.StoredProcedure - let ontIdParam = advancedTermSearchCmd.Parameters.Add("ontologyID",MySqlDbType.Int64) + let ontNameParam = advancedTermSearchCmd.Parameters.Add("ontologyName",MySqlDbType.VarChar) let searchNameParam = advancedTermSearchCmd.Parameters.Add("searchTermName",MySqlDbType.VarChar) let mustContainNameParam = advancedTermSearchCmd.Parameters.Add("mustContainName",MySqlDbType.VarChar) let searchDefParam = advancedTermSearchCmd.Parameters.Add("searchTermDefinition",MySqlDbType.VarChar) let mustContainDefParam = advancedTermSearchCmd.Parameters.Add("mustContainDefinition",MySqlDbType.VarChar) if ont.IsSome then - ontIdParam .Value <- ont.Value.ID + ontNameParam .Value <- ont.Value.Name else - ontIdParam .Value <- DBNull.Value + ontNameParam .Value <- DBNull.Value searchNameParam .Value <- searchName mustContainNameParam .Value <- mustContainName @@ -548,17 +531,16 @@ let getAdvancedTermSearchResults cString (ont : DbDomain.Ontology option) (searc while reader.Read() do yield DbDomain.createTerm - (reader.GetInt64(0)) + (reader.GetString(0)) (reader.GetString(1)) - (reader.GetInt64(2)) + (reader.GetString(2)) (reader.GetString(3)) - (reader.GetString(4)) - (if (reader.IsDBNull(5)) then + (if (reader.IsDBNull(4)) then None else - Some (reader.GetString(5))) - (reader.GetBoolean(6)) - |] + Some (reader.GetString(4))) + (reader.GetBoolean(5)) + |] |> fun res -> if keepObsolete then res diff --git a/src/Server/Server.fs b/src/Server/Server.fs index cc2010d6..69c193ca 100644 --- a/src/Server/Server.fs +++ b/src/Server/Server.fs @@ -46,7 +46,6 @@ let annotatorApi cString = { //let createdEntry = OntologyDB.insertOntology cString name version definition created user let onto = DbDomain.createOntology - 0L name version definition diff --git a/src/Shared/Shared.fs b/src/Shared/Shared.fs index d49d4211..b2fa1961 100644 --- a/src/Shared/Shared.fs +++ b/src/Shared/Shared.fs @@ -79,7 +79,6 @@ module Suggestion = module DbDomain = type Ontology = { - ID : int64 Name : string CurrentVersion : string Definition : string @@ -87,8 +86,7 @@ module DbDomain = UserID : string } - let createOntology id name currentVersion definition dateCreated userID = { - ID = id + let createOntology name currentVersion definition dateCreated userID = { Name = name CurrentVersion = currentVersion Definition = definition @@ -97,8 +95,7 @@ module DbDomain = } type Term = { - ID : int64 - OntologyId : int64 + OntologyName : string Accession : string Name : string Definition : string @@ -106,9 +103,8 @@ module DbDomain = IsObsolete : bool } - let createTerm id accession ontologyID name definition xrefvaluetype isObsolete = { - ID = id - OntologyId = ontologyID + let createTerm accession ontologyName name definition xrefvaluetype isObsolete = { + OntologyName = ontologyName Accession = accession Name = name Definition = definition