Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
minerva
core
Commits
2cfe6a53
Commit
2cfe6a53
authored
Jan 19, 2017
by
Piotr Gawron
Browse files
implementation of ChemicalDbOverlay
parent
e2f6baa9
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
frontend-js/src/main/js/ServerConnector.js
View file @
2cfe6a53
...
...
@@ -736,6 +736,41 @@ ServerConnector.getDrugsByTargetUrl = function(params) {
});
};
ServerConnector
.
getChemicalsByQueryUrl
=
function
(
params
)
{
var
query
=
params
.
query
;
var
projectId
=
params
.
projectId
;
var
token
=
params
.
token
;
return
this
.
getApiUrl
({
type
:
"
chemical
"
,
method
:
"
getChemicalsByQuery
"
,
params
:
{
projectId
:
projectId
,
query
:
query
,
token
:
token
},
});
};
ServerConnector
.
getChemicalsByTargetUrl
=
function
(
params
)
{
var
query
=
params
.
query
;
var
projectId
=
params
.
projectId
;
var
token
=
params
.
token
;
var
columns
=
this
.
idsToString
(
params
.
columns
);
var
targetId
=
params
.
target
.
getId
();
var
targetType
=
params
.
target
.
getType
();
return
this
.
getApiUrl
({
type
:
"
chemical
"
,
method
:
"
getChemicalsByTarget
"
,
params
:
{
projectId
:
projectId
,
query
:
query
,
columns
:
columns
,
token
:
token
,
targetId
:
targetId
,
targetType
:
targetType
,
},
});
};
ServerConnector
.
getConfigurationParam
=
function
(
paramId
)
{
var
self
=
this
;
return
new
Promise
(
function
(
resolve
,
reject
)
{
...
...
@@ -1023,6 +1058,28 @@ ServerConnector.getDrugsByQuery = function(params) {
});
};
ServerConnector
.
getChemicalsByQuery
=
function
(
params
)
{
var
self
=
this
;
return
new
Promise
(
function
(
resolve
,
reject
)
{
return
self
.
getProjectId
(
params
.
projectId
).
then
(
function
(
result
)
{
params
.
projectId
=
result
;
return
self
.
getToken
();
}).
then
(
function
(
token
)
{
params
.
token
=
token
;
return
self
.
readFile
(
self
.
getChemicalsByQueryUrl
(
params
));
}).
then
(
function
(
content
)
{
var
array
=
JSON
.
parse
(
content
);
var
result
=
[];
for
(
var
i
=
0
;
i
<
array
.
length
;
i
++
)
{
result
.
push
(
new
Drug
(
array
[
i
]));
}
resolve
(
result
);
}).
catch
(
function
(
exception
){
reject
(
exception
);
});
});
};
ServerConnector
.
getDrugNamesByTarget
=
function
(
params
)
{
var
self
=
this
;
params
.
columns
=
[
"
name
"
];
...
...
@@ -1046,6 +1103,29 @@ ServerConnector.getDrugNamesByTarget = function(params) {
});
};
ServerConnector
.
getChemicalNamesByTarget
=
function
(
params
)
{
var
self
=
this
;
params
.
columns
=
[
"
name
"
];
return
new
Promise
(
function
(
resolve
,
reject
)
{
return
self
.
getProjectId
(
params
.
projectId
).
then
(
function
(
result
)
{
params
.
projectId
=
result
;
return
self
.
getToken
();
}).
then
(
function
(
token
)
{
params
.
token
=
token
;
return
self
.
readFile
(
self
.
getChemicalsByTargetUrl
(
params
));
}).
then
(
function
(
content
)
{
var
result
=
[];
var
object
=
JSON
.
parse
(
content
);
for
(
var
i
=
0
;
i
<
object
.
length
;
i
++
){
result
.
push
(
object
[
i
].
name
);
}
resolve
(
result
);
}).
catch
(
function
(
exception
){
reject
(
exception
);
});
});
};
ServerConnector
.
addComment
=
function
(
params
)
{
var
self
=
this
;
return
new
Promise
(
function
(
resolve
,
reject
)
{
...
...
frontend-js/src/main/js/SessionData.js
View file @
2cfe6a53
...
...
@@ -34,6 +34,8 @@ SessionData.prototype.setQuery = function(param) {
this
.
setDrugQuery
(
param
.
query
);
}
else
if
(
param
.
type
===
"
search
"
)
{
this
.
setSearchQuery
(
param
.
query
);
}
else
if
(
param
.
type
===
"
chemical
"
)
{
this
.
setChemicalQuery
(
param
.
query
);
}
else
{
throw
new
Error
(
"
Invalid query type:
"
+
param
.
type
);
}
...
...
@@ -62,6 +64,20 @@ SessionData.prototype.getDrugQuery = function() {
return
result
;
};
SessionData
.
prototype
.
setChemicalQuery
=
function
(
value
)
{
var
key
=
this
.
getKey
(
SessionObjectType
.
CHEMICAL_QUERY
);
Cookies
.
set
(
key
,
JSON
.
stringify
(
value
));
};
SessionData
.
prototype
.
getChemicalQuery
=
function
()
{
var
key
=
this
.
getKey
(
SessionObjectType
.
CHEMICAL_QUERY
);
var
result
=
Cookies
.
get
(
key
);
if
(
result
!==
undefined
)
{
result
=
JSON
.
parse
(
result
);
}
return
result
;
};
SessionData
.
prototype
.
setShowComments
=
function
(
value
)
{
var
key
=
this
.
getKey
(
SessionObjectType
.
SHOW_COMMENT
);
Cookies
.
set
(
key
,
value
+
""
);
...
...
frontend-js/src/main/js/SessionObjectType.js
View file @
2cfe6a53
"
use strict
"
;
var
SessionObjectType
=
{
CHEMICAL_QUERY
:
"
CHEMICAL_QUERY
"
,
DRUG_QUERY
:
"
DRUG_QUERY
"
,
SHOW_COMMENT
:
"
SHOW_COMMENT
"
,
SELECTED_BACKGROUND_OVERLAY
:
"
SELECTED_BACKGROUND_OVERLAY
"
,
...
...
frontend-js/src/main/js/map/overlay/ChemicalDbOverlay.js
0 → 100644
View file @
2cfe6a53
"
use strict
"
;
var
logger
=
require
(
'
../../logger
'
);
var
Promise
=
require
(
"
bluebird
"
);
var
IdentifiedElement
=
require
(
'
../data/IdentifiedElement
'
);
var
AbstractTargettingDbOverlay
=
require
(
'
./AbstractTargettingDbOverlay
'
);
var
ServerConnector
=
require
(
'
../../ServerConnector
'
);
function
ChemicalDbOverlay
(
params
)
{
params
.
iconType
=
"
ball
"
;
params
.
iconColorStart
=
1
;
// call super constructor
AbstractTargettingDbOverlay
.
call
(
this
,
params
);
}
ChemicalDbOverlay
.
prototype
=
Object
.
create
(
AbstractTargettingDbOverlay
.
prototype
);
ChemicalDbOverlay
.
prototype
.
constructor
=
ChemicalDbOverlay
;
ChemicalDbOverlay
.
prototype
.
getNamesByTargetFromServer
=
function
(
param
)
{
return
ServerConnector
.
getChemicalNamesByTarget
(
param
);
}
ChemicalDbOverlay
.
prototype
.
getElementsByQueryFromServer
=
function
(
param
)
{
return
ServerConnector
.
getChemicalsByQuery
(
param
);
}
module
.
exports
=
ChemicalDbOverlay
;
frontend-js/src/test/js/helper.js
View file @
2cfe6a53
...
...
@@ -4,6 +4,7 @@ require("./mocha-config");
var
Alias
=
require
(
"
../../main/js/map/data/Alias
"
);
var
AbstractCustomMap
=
require
(
"
../../main/js/map/AbstractCustomMap
"
);
var
ChemicalDbOverlay
=
require
(
"
../../main/js/map/overlay/ChemicalDbOverlay
"
);
var
Comment
=
require
(
"
../../main/js/map/data/Comment
"
);
var
CommentDbOverlay
=
require
(
"
../../main/js/map/overlay/CommentDbOverlay
"
);
var
CustomMap
=
require
(
"
../../main/js/map/CustomMap
"
);
...
...
@@ -99,6 +100,17 @@ Helper.prototype.createDrugDbOverlay = function(map) {
return
result
;
};
Helper
.
prototype
.
createChemicalDbOverlay
=
function
(
map
)
{
var
result
=
new
ChemicalDbOverlay
({
map
:
map
,
name
:
"
chemical
"
,
allowGeneralSearch
:
true
,
allowSearchById
:
true
,
});
map
.
registerSource
(
result
);
return
result
;
};
Helper
.
prototype
.
createComment
=
function
(
element
)
{
var
elementType
=
"
ALIAS
"
;
var
elementId
=
this
.
idCounter
++
;
...
...
frontend-js/src/test/js/map/overlay/ChemicalDbOverlay-test.js
0 → 100644
View file @
2cfe6a53
"
use strict
"
;
var
Helper
=
require
(
'
../../Helper
'
);
var
logger
=
require
(
'
../../logger
'
);
var
IdentifiedElement
=
require
(
'
../../../../main/js/map/data/IdentifiedElement
'
);
var
ChemicalDbOverlay
=
require
(
'
../../../../main/js/map/overlay/ChemicalDbOverlay
'
);
var
assert
=
require
(
'
assert
'
);
describe
(
'
ChemicalDbOverlay
'
,
function
()
{
var
helper
;
before
(
function
()
{
helper
=
new
Helper
();
});
it
(
"
constructor 1
"
,
function
()
{
var
map
=
helper
.
createCustomMap
();
var
oc
=
new
ChemicalDbOverlay
({
map
:
map
,
name
:
'
chemical
'
});
assert
.
ok
(
oc
);
assert
.
equal
(
oc
.
getName
(),
'
chemical
'
);
assert
.
equal
(
logger
.
getWarnings
.
length
,
0
);
});
it
(
"
searchByQuery
"
,
function
()
{
var
map
=
helper
.
createCustomMap
();
map
.
getModel
().
setId
(
15781
);
var
searchDb
=
helper
.
createChemicalDbOverlay
(
map
);
return
searchDb
.
searchByQuery
(
"
rotenone
"
).
then
(
function
(
chemicals
)
{
assert
.
equal
(
chemicals
.
length
,
1
);
assert
.
equal
(
searchDb
.
getQueries
().
length
,
1
);
return
searchDb
.
getElementsByQuery
(
searchDb
.
getQueries
()[
0
]);
}).
then
(
function
(
elements
)
{
//these are targets
assert
.
ok
(
elements
.
length
>
0
);
var
chemical
=
elements
.
element
;
assert
.
equal
(
chemical
.
getName
(),
"
Rotenone
"
);
return
searchDb
.
getIdentifiedElements
();
}).
then
(
function
(
elements
)
{
assert
.
equal
(
elements
.
length
,
0
);
});
});
it
(
"
searchNamesByTarget
"
,
function
()
{
var
map
=
helper
.
createCustomMap
();
map
.
getModel
().
setId
(
15781
);
var
searchDb
=
helper
.
createChemicalDbOverlay
(
map
);
var
target
=
new
IdentifiedElement
({
type
:
"
ALIAS
"
,
id
:
329170
,
modelId
:
15781
,
});
return
searchDb
.
searchNamesByTarget
(
target
).
then
(
function
(
chemicalNames
)
{
assert
.
equal
(
chemicalNames
.
length
,
0
);
});
});
});
frontend-js/testFiles/apiCalls/chemical/getChemicalsByQuery/projectId=sample&query=rotenone&token=MOCK_TOKEN_ID&
0 → 100644
View file @
2cfe6a53
This diff is collapsed.
Click to expand it.
frontend-js/testFiles/apiCalls/chemical/getChemicalsByTarget/columns=name&projectId=sample&targetId=329170&targetType=ALIAS&token=MOCK_TOKEN_ID&
0 → 100644
View file @
2cfe6a53
[]
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment