Skip to content
This repository was archived by the owner on May 13, 2023. It is now read-only.

supabase/postgrest-dart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Postgrest Dart

Dart client for PostgREST. The goal of this library is to make an "ORM-like" restful interface.

pub package pub test

Using

The usage should be the same as postgrest-js except:

  • data is directly returned by awaiting the query when count option is not specified.
  • Exceptions will not be returned within the response, but will be thrown.
  • is_ and in_ filter methods are suffixed with _ sign to avoid collisions with reserved keywords.

You can find detail documentation from here.

Reading your data

import 'package:postgrest/postgrest.dart';

final url = 'https://example.com/postgrest/endpoint';
final client = PostgrestClient(url);
final response = await client.from('users').select();

Insert records

import 'package:postgrest/postgrest.dart';

final url = 'https://example.com/postgrest/endpoint';
final client = PostgrestClient(url);
try {
  final data = await client.from('users')
    .insert([
      {'username': 'supabot', 'status': 'ONLINE'}
    ]);
} on PostgrestException catch (error, stacktrace) {
  // handle a PostgrestError
  print('$error \n $stacktrace');
} catch (error, stacktrace) {
  // handle other errors
  print('$error \n $stracktrace');
}

Update a record

import 'package:postgrest/postgrest.dart';

final url = 'https://example.com/postgrest/endpoint';
final client = PostgrestClient(url);
final data = await client.from('users')
      .update({'status': 'OFFLINE'})
      .eq('username', 'dragarcia');

Delete records

import 'package:postgrest/postgrest.dart';

final url = 'https://example.com/postgrest/endpoint';
final client = PostgrestClient(url);
final data = await client.from('users')
      .delete()
      .eq('username', 'supabot');

Get Count

import 'package:postgrest/postgrest.dart';

final url = 'https://example.com/postgrest/endpoint';
final client = PostgrestClient(url);
final response = await client.from('countries')
      .select('*', FetchOptions(count: CountOption.exact));
final data = response.data;
final count = response.count;

Contributing

  • Fork the repo on GitHub
  • Clone the project to your own machine
  • Commit changes to your own branch
  • Push your work back up to your fork
  • Submit a Pull request so that we can review your changes and merge

License

This repo is licensed under MIT.

Credits