Profscode CRUD

A lightweight, GetX-based HTTP CRUD helper for Flutter/Dart. Completely user-controlled: no global tokens or headers are required. Easily handles GET, POST, PUT, DELETE, Head, Patch, Options, File requests, with optional token refresh logic.


Features

  • GET, POST, PUT, DELETE, Head, Patch, Options, File requests
  • Optional custom headers
  • Optional token refresh handling
  • Fully injectable, no global state
  • Easy to extend for file/multi-file uploads

Installation

Add to your pubspec.yaml:

dependencies:
  profscode_crud:
    git:
      url: https://github.com/Ahmedhafiz33/profscode_crud.git
      ref: main

Then run:

flutter pub get

Usage

1️⃣ Basic Setup

import 'package:get/get.dart';
import 'package:profscode_crud/profscode_crud.dart';

void main() async {
  final crud = Crud(
    headersProvider: () => {
      'Authorization': 'Bearer YOUR_TOKEN',
      'Content-Type': 'application/json',
    },
    onRefreshToken: () async {
      // Optional: refresh token logic
      // return true if token refreshed successfully
      return false;
    },
  );

  final response = await crud.getRequest('https://api.example.com/users');
  print(response);
}

2️⃣ POST Request

final data = {'name': 'John', 'email': 'john@example.com'};
final response = await crud.postRequest('https://api.example.com/users', data);
print(response);

3️⃣ PUT Request

final updateData = {'name': 'Jane'};
final response = await crud.putRequest('https://api.example.com/users/1', updateData);
print(response);

4️⃣ DELETE Request

final response = await crud.deleteRequest('https://api.example.com/users/1');
print(response);

Optional Token Refresh

final crud = Crud(
  headersProvider: () => {
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
  },
  onRefreshToken: () async {
    final newToken = await fetchNewToken(); // your refresh logic
    return newToken != null;
  },
);

✅ The onRefreshToken function will automatically be called when the API returns 401.


Advantages

  • No dependency on global state
  • Flexible headers per request
  • Easy integration with any API
  • Compatible with Flutter & Dart projects using GetX

Contributing

Enhancements like file upload support, multi-file requests, or logging are welcome. Submit issues or pull requests freely.


License

MIT © Ahmed Ekrem Hafız


Libraries

main
profscode_crud
Support for doing something awesome.