Skip to content

Latest commit

 

History

History
329 lines (298 loc) · 16.4 KB

document-example-queries.md

File metadata and controls

329 lines (298 loc) · 16.4 KB

Document queries

GET /documents

Contents

  1. Query documents of type proposal containing my own data
  2. Query documents where wavelength is 1000-1100 nm
  3. Query documents containing datasets where wavelength is 1000-1100 nm
  4. Query documents investigating a particular sample using a certain technique

Examples

Query documents of type proposal containing my own data

Filter

{
    "where": {
        "type": "proposal"
    },
    "include": [
        {
            "relation": "datasets"
        },
        {
            "relation": "members",
            "scope": {
                "where": {
                    "role": "principal investigator"
                },
                "include": [
                    {
                        "relation": "person",
                        "scope": {
                            "where": {
                                "fullName": "James Chadwick"
                            }
                        }
                    }
                ]
            }
        }
    ]
}

Curl

curl -X GET --header 'Accept: application/json' 'http://localhost:3000/api/Documents?filter=%7B%20%20%20%20%20%22where%22%3A%20%7B%20%20%20%20%20%20%20%20%20%22type%22%3A%20%22proposal%22%20%20%20%20%20%7D%2C%20%20%20%20%20%22include%22%3A%20%5B%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%22relation%22%3A%20%22datasets%22%20%20%20%20%20%20%20%20%20%7D%2C%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%22relation%22%3A%20%22members%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%22scope%22%3A%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22where%22%3A%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22role%22%3A%20%22principal%20investigator%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22include%22%3A%20%5B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22relation%22%3A%20%22person%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22scope%22%3A%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22where%22%3A%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22fullName%22%3A%20%22James%20Chadwick%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%5D%20%7D'

Response

[
    {
        "pid": "10.5072/panosc-document2",
        "isPublic": true,
        "type": "proposal",
        "title": "PaNOSC Test Proposal",
        "score": 0,
        "datasets": [
            {
                "pid": "20.500.12269/panosc-dataset3",
                "title": "PaNOSC Test Dataset 3",
                "isPublic": true,
                "creationDate": "2020-05-05T15:01:02.341Z",
                "documentId": "10.5072/panosc-document2",
                "instrumentId": "20.500.12269/f0637030-9f89-4398-8f01-09211145efa1"
            },
            {
                "pid": "20.500.12269/panosc-dataset4",
                "title": "PaNOSC Test Dataset 4",
                "isPublic": true,
                "creationDate": "2020-05-05T15:01:02.341Z",
                "documentId": "10.5072/panosc-document2",
                "instrumentId": "20.500.12269/d3dd2880-637a-40b5-9815-990453817f0e"
            }
        ],
        "members": [
            {
                "id": 3,
                "role": "principal investigator",
                "documentId": "10.5072/panosc-document2",
                "affiliationId": 1,
                "personId": "panosc-person2",
                "person": {
                    "id": "panosc-person2",
                    "fullName": "James Chadwick"
                }
            }
        ]
    }
]

Query documents where wavelength is 1000-1100 nm

Filter

{
    "include": [
        {
            "relation": "parameters",
            "scope": {
                "where": {
                    "and": [
                        {
                            "name":"wavelength"
                        },
                        {
                            "value": {
                                "between": [1000, 1100]
                            }
                        },
                        {
                            "unit": "nm"
                        }
                    ]
                }
            }
        }
    ]
}

Curl

curl -X GET --header 'Accept: application/json' 'http://localhost:3000/api/Documents?filter=%7B%20%20%20%20%20%22include%22%3A%20%5B%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%22relation%22%3A%20%22parameters%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%22scope%22%3A%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22where%22%3A%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22and%22%3A%20%5B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%3A%22wavelength%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22value%22%3A%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22between%22%3A%20%5B1000%2C%201100%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22unit%22%3A%20%22nm%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%5D%20%7D'

Response

[
    {
        "pid": "10.5072/panosc-document1",
        "isPublic": true,
        "type": "publication",
        "title": "PaNOSC Test Publication",
        "score": 0,
        "parameters": [
            {
                "id": 6,
                "name": "wavelength",
                "value": 1064,
                "unit": "nm",
                "documentId": "10.5072/panosc-document1"
            }
        ]
    }
]

Query documents containing datasets where wavelength is 1000-1100 nm

Filter

{
    "include": [
        {
            "relation": "datasets",
            "scope": {
                "include": [
                    {
                        "relation": "parameters",
                        "scope": {
                            "where": {
                                "and": [
                                    {
                                        "name": "wavelength"
                                    },
                                    {
                                        "value": {
                                            "between": [1000,1100]
                                        }
                                    },
                                    {
                                        "unit": "nm"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        }
    ]
}

Curl

curl -X GET --header 'Accept: application/json' 'http://localhost:3000/api/Documents?filter=%7B%20%20%20%20%20%22include%22%3A%20%5B%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%22relation%22%3A%20%22datasets%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%22scope%22%3A%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22include%22%3A%20%5B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22relation%22%3A%20%22parameters%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22scope%22%3A%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22where%22%3A%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22and%22%3A%20%5B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%3A%20%22wavelength%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22value%22%3A%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22between%22%3A%20%5B1000%2C1100%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22unit%22%3A%20%22nm%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%5D%20%7D'

Response

[
    {
        "pid": "10.5072/panosc-document2",
        "type": "proposal",
        "isPublic": true,
        "title": "PaNOSC Test Proposal",
        "score": 0,
        "datasets": [
            {
                "pid": "20.500.12269/panosc-dataset4",
                "title": "PaNOSC Test Dataset 4",
                "isPublic": true,
                "documentId": "10.5072/panosc-document2",
                "instrumentId": "20.500.12269/d3dd2880-637a-40b5-9815-990453817f0e",
                "parameters": [
                    {
                        "id": 5,
                        "name": "wavelength",
                        "value": 1064,
                        "unit": "nm",
                        "datasetId": "20.500.12269/panosc-dataset4"
                    }
                ]
            }
        ]
    }
]

Query documents investigating a particular sample using a certain technique

Filter

{
    "include": [
        {
            "relation": "datasets",
            "scope": {
                "include": [
                    {
                        "relation": "samples",
                        "scope": {
                            "where": {
                                "name": "solid copper cylinder"
                            }
                        }
                    },
                    {
                        "relation": "techniques",
                        "scope": {
                            "where": {
                                "name": "x-ray absorption"
                            }
                        }
                    }
                ]
            }
        }
    ]
}

Curl

curl -X GET --header 'Accept: application/json' 'http://localhost:3000/api/Documents?filter=%7B%20%20%20%20%20%22include%22%3A%20%5B%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%22relation%22%3A%20%22datasets%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%22scope%22%3A%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22include%22%3A%20%5B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22relation%22%3A%20%22samples%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22scope%22%3A%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22where%22%3A%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%3A%20%22solid%20copper%20cylinder%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22relation%22%3A%20%22techniques%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22scope%22%3A%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22where%22%3A%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%3A%20%22x-ray%20absorption%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%5D%20%7D'

Response

[
    {
        "pid": "10.5072/panosc-document2",
        "isPublic": true,
        "type": "proposal",
        "title": "PaNOSC Test Proposal",
        "score": 0,
        "datasets": [
            {
                "pid": "20.500.12269/panosc-dataset3",
                "title": "PaNOSC Test Dataset 3",
                "isPublic": true,
                "creationDate": "2020-05-05T15:01:02.341Z",
                "documentId": "10.5072/panosc-document2",
                "instrumentId": "20.500.12269/f0637030-9f89-4398-8f01-09211145efa1",
                "samples": [
                    {
                        "pid": "20.500.12269/panosc-sample1",
                        "name": "solid copper cylinder"
                    }
                ],
                "techniques": [
                    {
                        "pid": "20.500.12269/panosc-tech2",
                        "name": "x-ray absorption"
                    }
                ]
            },
            {
                "pid": "20.500.12269/panosc-dataset4",
                "title": "PaNOSC Test Dataset 4",
                "isPublic": true,
                "creationDate": "2020-05-05T15:01:02.341Z",
                "documentId": "10.5072/panosc-document2",
                "instrumentId": "20.500.12269/d3dd2880-637a-40b5-9815-990453817f0e",
                "samples": [
                    {
                        "pid": "20.500.12269/panosc-sample1",
                        "name": "solid copper cylinder"
                    }
                ],
                "techniques": [
                    {
                        "pid": "20.500.12269/panosc-tech2",
                        "name": "x-ray absorption"
                    }
                ]
            }
        ]
    }
]