profscode_crud 1.0.0 copy "profscode_crud: ^1.0.0" to clipboard
profscode_crud: ^1.0.0 copied to clipboard

A simple GetX-based CRUD helper for HTTP requests.

example/profscode_crud_example.dart

import 'package:flutter/material.dart';
import 'package:profscode_crud/profscode_crud.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Profscode CRUD Example',
      home: const CrudExamplePage(),
    );
  }
}

class CrudExamplePage extends StatefulWidget {
  const CrudExamplePage({super.key});

  @override
  State<CrudExamplePage> createState() => _CrudExamplePageState();
}

class _CrudExamplePageState extends State<CrudExamplePage> {
  late Crud crud;
  String resultText = 'Press a button to make a request';

  @override
  void initState() {
    super.initState();

    // Initialize the CRUD instance with custom headers and optional token refresh
    crud = Crud(
      headersProvider: () => {
        'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
        'Content-Type': 'application/json',
      },
      onRefreshToken: () async {
        // Optional: implement token refresh logic
        print('Refreshing token...');
        await Future.delayed(const Duration(seconds: 1));
        // Return true if token refreshed successfully
        return true;
      },
    );
  }

  Future<void> _getUsers() async {
    final response = await crud.getRequest(
      'https://jsonplaceholder.typicode.com/users',
    );
    setState(() {
      resultText = 'GET Response: ${response.toString()}';
    });
  }

  Future<void> _createUser() async {
    final data = {'name': 'John Doe', 'email': '[email protected]'};
    final response = await crud.postRequest(
      'https://jsonplaceholder.typicode.com/users',
      data,
    );
    setState(() {
      resultText = 'POST Response: ${response.toString()}';
    });
  }

  Future<void> _updateUser() async {
    final data = {'name': 'Jane Doe'};
    final response = await crud.putRequest(
      'https://jsonplaceholder.typicode.com/users/1',
      data,
    );
    setState(() {
      resultText = 'PUT Response: ${response.toString()}';
    });
  }

  Future<void> _deleteUser() async {
    final response = await crud.deleteRequest(
      'https://jsonplaceholder.typicode.com/users/1',
    );
    setState(() {
      resultText = 'DELETE Response: ${response.toString()}';
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Profscode CRUD Example')),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            ElevatedButton(
              onPressed: _getUsers,
              child: const Text('GET Users'),
            ),
            const SizedBox(height: 10),
            ElevatedButton(
              onPressed: _createUser,
              child: const Text('POST User'),
            ),
            const SizedBox(height: 10),
            ElevatedButton(
              onPressed: _updateUser,
              child: const Text('PUT User'),
            ),
            const SizedBox(height: 10),
            ElevatedButton(
              onPressed: _deleteUser,
              child: const Text('DELETE User'),
            ),
            const SizedBox(height: 20),
            Expanded(child: SingleChildScrollView(child: Text(resultText))),
          ],
        ),
      ),
    );
  }
}
5
likes
0
points
271
downloads

Publisher

unverified uploader

Weekly Downloads

A simple GetX-based CRUD helper for HTTP requests.

Repository (GitHub)
View/report issues

Documentation

Documentation

License

unknown (license)

Dependencies

flutter, get, http, path

More

Packages that depend on profscode_crud