# Focus query updates updates
1. Search query
2. Entity details
3. Person details
4. Wallet details
## Entity search query (for top left searchbar)
```
CALL
db.index.fulltext.queryNodes("focusSearch", $query)
yield node, score
with
node,
score
match
(node)
optional match
(node)-[]-(t:Twitter)
optional match
(node)-[]-(w:Website)
with
node.name as name,
tostring(id(node)) as id,
t.bio as twitter_bio,
node.profileUrl as snapshotImage,
t.followerCount as followerCount,
t.profileImageUrl as twitterImage,
[x in labels(node) where x in ['Person', Entity]] as labels
score
limit 10
return distinct
{
id: id,
name: name,
twitterBio: twitter_bio,
twitterFollowers: followerCount,
entityImage: snapshotImage,
backupImage: twitterImage
labels: labels,
score: score
}
```
// if entity, use "entityImage". if no entity image, use "backupImage"
// if person, use "backupImage"
## Person details query
```
match
(n:Person)
where
tostring(id(n)) = $ID
with
n
match
(n:Person)
optional match
(n)-[]->(alias:Alias)
optional match
(n)-[t:HAS_ACCOUNT]->(twitter:Twitter)
optional match
(n)-[]->(wallet:Wallet)
optional match
(n)-[]->(wallet:Wallet)-[]-(e:Ens)
optional match
(n)-[r:TRUST]-(trusted)
with
n.name as name,
collect(distinct(alias.name)) + collect(distinct(e.name)) as aliases,
t.bio as description,
twitter.followerCount as twitterFollowers,
collect(distinct(wallet.address)) as wallets,
count(distinct(trusted)) as trusted_entities,
n.uuid as uuid,
tostring(id(n)) as id
return
{
uuid: uuid,
id: id,
name: name,
aliases: aliases,
description: description,
twitterFollowers: twitterFollowers,
wallets: wallets,
trustedEntities: trusted_entities
} as result
```
## Entity details query
```
match
(n:Entity)
where
tostring(id(n)) = $ID
with
n
match
(n:Entity)
optional match
(n)-[]->(alias:Alias)
optional match
(n)-[t:HAS_ACCOUNT]->(twitter:Twitter)
optional match
(n)-[strategy:HAS_STRATEGY]->(token:Token)
optional match
(n)-[:TRUST]-(trusted)
with
n,
n.name as name,
n.uuid as uuid,
twitter.bio as bio,
twitter.followerCount as twitterFollowers,
collect(distinct(alias.name)) as aliases,
"https://twitter.com/" + twitter.handle as twitterProfileUrl,
token,
n.profileUrl as profileImage,
tostring(id(n)) as id,
t.profileImageUrl as backupImage,
n.snapshotId as snapshotId,
'https://etherscan.io/token/' + token.address as tokenLink,
'https://snapshot.org/#/' + n.snapshotId as snapshotLink,
count(distinct(trusted)) as trusted_ents
return
{
uuid: uuid,
id: id,
name: name,
description: bio,
twitterFollowersCount: twitterFollowers,
twitterProfileUrl: twitterProfileUrl,
snapshotLink: snapshotLink,
tokenLink: tokenLink,
countTrusted: trusted_ents,
profileImage: profileImage,
backupProfileImage: backupImage
} as result
```
## Wallet details query
```
match
(w:Wallet)
where
w.address = '0xc75446a6adaef73269dbdece73536977b2b639e0'
with
w
optional match
(w)-[]-(e:Ens)
optional match
(w)-[r:TRUST]-(t)
where
w.address = $wallet_address
with
w,
"https://etherscan.com/address/" + w.address as etherscan_link,
collect(distinct(e.name)) as ens_names,
w.uuid as uuid,
tostring(id(w)) as id,
w.address as address,
count(distinct(r)) as trusted_entities
return
{
return
{
uuid: uuid,
id: id,
address: address,
ens_names: ens_names,
} as result
```