# Dart

*Disclaimer: This is a community-maintained package built by* [*Rohith Gilla*](https://x.com/gillarohith)*.*&#x20;

#### Installation

Install the package via dart pub:

```bash
dart pub add telemetry_sh
```

#### Usage

**Import the Library**

First, import the package into your Dart code:

```dart
import 'package:telemetry_sh/telemetry_sh.dart';
```

**Initialize the Client**

Next, initialize the `TelemetrySh` instance with your API key:

```dart
final telemetry = TelemetrySh('YOUR_API_KEY');  // Replace with your actual API key
```

**Log Some Data**

Telemetry automatically creates tables when data is logged. In this example, we log some Uber ride data to a table called `uber_rides`. Telemetry will automatically create this table and its corresponding schema with columns: `city`, `price`, and `timestamp`.

```dart
final data = {
  'city': 'paris',
  'price': 42,
  'timestamp': DateTime.now().toIso8601String()
};

Future<void> logData() async {
  try {
    final response = await telemetry.log('uber_rides', data);
    print('Log response: $response');
  } catch (error) {
    print('Error logging data: $error');
  }
}

logData();
```

**Query Some Data**

You can query the data using SQL through the query API:

```dart
final query = '''
  SELECT
    city,
    AVG(price) AS average_price
  FROM
    uber_rides
  GROUP BY
    city
''';

Future<void> queryData() async {
  try {
    final queryResponse = await telemetry.query(query);
    print('Query response: $queryResponse');
  } catch (error) {
    print('Error querying data: $error');
  }
}

queryData();
```
