harperdb 0.0.6 copy "harperdb: ^0.0.6" to clipboard
harperdb: ^0.0.6 copied to clipboard

outdated

A flutter SDK for accessing HarperDB Studio easily, The package bridges the gap between the HarperDB cloud API database and the flutter framework. it gives the option to define details of your databas [...]

HarperDB #

Pub version GitHub all releases language lICENCE
#

A package for connecting Flutter with HarperDB


This package provides a way to access HarperDB API database in either SQL or NOSQL format. It is dependent of the http package made by dart-lang.

Installation #


Open your project and type the code below in your terminal

flutter pub add harperdb

Usage #


Import the package

import 'package:harperdb/harperdb.dart';

Set your HDB_URL, HDB_USER, and HDB_PASSWORD variables for use within your application:

const HDB_URL = 'https://hdb-publicdemo.harperdbcloud.com';
const HDB_USER = 'HDB_READER';
const HDB_PASSWORD = 'password';

Build your function (must have async type of Future):

  // Function must be async
  // Use <List> return for queries.
  // Use <Map> for inserts, updates, deletes, etc.
  
  Future<List> loadData() async {
    var show = await harperDB(
      HDB_URL,
      HDB_USER,
      HDB_PASSWORD,
      {
        // Contains the syntax code from HarperDB for operations.
        "operation": "sql",
        "sql": "select * from dev.dog"
      },
    );
    //this shows you if the query ran properly
    debugPrint(
      show.toString(),
    );
    //set the result of the query to your list which will be returned
    setState(() {
      harperData = show;
    });
    // the function type which was stated must be returned
    return harperData;
  }

Call your function on init:

  @override
  void initState() {
    queryHarperDB = loadData();
    super.initState();
  }

To display the results of your query, use a FutureBuilder to ensure the data has returned from the API:

  @override
  Widget build(BuildContext context) {
      return Scaffold(
        body: FutureBuilder(
          future: queryHarperDB,
          builder: (BuildContext context, AsyncSnapshot snapshot) {
            if (snapshot.connectionState == ConnectionState.waiting) {
              return const Center(child: CircularProgressIndicator());
            }
            else if (snapshot.connectionState == ConnectionState.done) {
              return ListView.builder(
                itemCount: harperData.length,
                itemBuilder: (context, index) {
                  return ListTile(
                    leading: Text(
                      harperData[index]['dog_name'],
                    ),
                    title: Text(
                      harperData[index]['owner_name'],
                      textAlign: TextAlign.center,
                    ),
                    trailing: Text(
                      harperData[index]['dog_age'].toString(),
                    ),
                  );
                },
              );
            }
            else {
              return const Center(
                  child: Text("Something went wrong."));
            }
          },
        ),
      );
      }
  }

NOTE : #

The return type of your function is dependent on the HarperDB operation you are executing. Queries will return a <List>, while inserts, updates, deletes, etc. will return a <Map>

3
likes
0
pub points
0%
popularity

Publisher

verified publisherharperdb.io

A flutter SDK for accessing HarperDB Studio easily, The package bridges the gap between the HarperDB cloud API database and the flutter framework. it gives the option to define details of your database such as table name, column name, etc. Using a cloud database API has never been easier, no writing of codes, you require very little knowledge to use this API

Repository (GitHub)
View/report issues

Documentation

Documentation

License

unknown (LICENSE)

Dependencies

flutter, http

More

Packages that depend on harperdb