Exemplo n.º 1
0
    def datasources(self) -> Response:
        """Get available datasources
        ---
        get:
          description: Get available datasources.
          responses:
            200:
              description: Query result
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ChartGetDatasourceResponseSchema"
            400:
              $ref: '#/components/responses/400'
            401:
              $ref: '#/components/responses/401'
            404:
              $ref: '#/components/responses/404'
            422:
              $ref: '#/components/responses/422'
            500:
              $ref: '#/components/responses/500'
        """
        datasources = ChartDAO.fetch_all_datasources()
        if not datasources:
            return self.response(200, count=0, result=[])

        result = [
            {
                "label": str(ds),
                "value": {"datasource_id": ds.id, "datasource_type": ds.type},
            }
            for ds in datasources
        ]
        return self.response(200, count=len(result), result=result)
Exemplo n.º 2
0
    def datasources(self) -> Response:
        """Get available datasources
        ---
        get:
          description: Get available datasources.
          responses:
            200:
              description: charts unique datasource data
              content:
                application/json:
                  schema:
                    type: object
                    properties:
                      count:
                        type: integer
                      result:
                        type: object
                        properties:
                          label:
                            type: string
                          value:
                            type: object
                            properties:
                              database_id:
                                type: integer
                              database_type:
                                type: string
            400:
              $ref: '#/components/responses/400'
            401:
              $ref: '#/components/responses/401'
            404:
              $ref: '#/components/responses/404'
            422:
              $ref: '#/components/responses/422'
            500:
              $ref: '#/components/responses/500'
        """
        datasources = ChartDAO.fetch_all_datasources()
        if not datasources:
            return self.response(200, count=0, result=[])

        result = [{
            "label": str(ds),
            "value": {
                "datasource_id": ds.id,
                "datasource_type": ds.type
            },
        } for ds in datasources]
        return self.response(200, count=len(result), result=result)