Need use UUID from supabase in the customcode

Custom Code

Hello,

I need use the UUID from table Auth in my custom code, i no have idea how does this work, I've tried several ways already!!


What have you tried so far?
Follow my code: // Automatic FlutterFlow imports
import '/backend/schema/structs/index.dart';
import '/backend/supabase/supabase.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/custom_code/widgets/index.dart'; // Imports other custom widgets
import '/flutter_flow/custom_functions.dart'; // Imports custom functions
import 'package:flutter/material.dart';
// Begin custom widget code
// DO NOT REMOVE OR MODIFY THE CODE ABOVE!

import 'package:http/http.dart' as http;
import 'dart:convert';

import 'package:syncfusion_flutter_charts/charts.dart';
import 'package:intl/intl.dart';
import 'package:flutter/widgets.dart' as widget;

Future<void> fetchDataFromAPI() async {
    // Defina a URL base sem parâmetros
    const String url = 'https://rjgkiosbxidexelzgsis.supabase.co/rest/v1/rpc/pedidos_afiliado';
    
    // Defina a chave API
    const String apiKey =
        'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InJqZ2tpb3NieGlkZXhlbHpnc2lzIiwicm9sZSI6I';
    
    // Defina o token de autorização
    const String token =
        'rPRT6e3sZ32/wWbdAmGG52GfJlJ+QVeAx5eH3/HfheQibuU1HsQU7PIE9ung==';

    // Dados a serem enviados no corpo da solicitação
    final Map<String, dynamic> requestBody = {
        'p_id_usuario': widget.idUser, // Insere o idUser na solicitação
    };

    try {
        // Envia uma solicitação POST à URL, passando os cabeçalhos e o corpo da requisição
        var response = await http.post(
            Uri.parse(url),
            headers: {
                'Content-Type': 'application/json',
                'apikey': apiKey,
                'Authorization': token,
            },
            body: jsonEncode(requestBody), // Codifica o corpo da solicitação como JSON
        );

        // Verifica o status da resposta
        if (response.statusCode == 200) {
            // Decodifica a resposta JSON
            var data = jsonDecode(response.body);
            // Atualiza o estado com os dados recebidos
            setState(() {
                chartData = List.from(data.map((item) => ChartDataStruct.fromJson(item)));
            });
        } else {
            // Lança uma exceção se a solicitação falhar
            throw Exception('Falha ao carregar dados');
        }
    } catch (e) {
        // Lida com qualquer exceção lançada durante a solicitação
        print(e.toString());
    }
}

  double calculateTotalCommissions() {
    double totalCommissions = 0;
    for (var data in chartData) {
      totalCommissions += data.comissaoVendedor;
    }
    return totalCommissions;
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      width: widget.width ?? double.infinity,
      height: widget.height ?? 300,
      child: SfCartesianChart(
        title: ChartTitle(text: widget.chartTitle ?? 'Ganhos'),
        margin: EdgeInsets.only(left: 10, right: 10), // Adicionando margens
        primaryXAxis: CategoryAxis(
          isVisible: true,
          minimum: 0, // Inicia em 0
          maximum: chartData.isNotEmpty ? chartData.length - 1 : 0,
          interval: 1, // Intervalo entre cada ponto no eixo X
          edgeLabelPlacement:
              EdgeLabelPlacement.none, // Deslocamento de etiquetas
          labelPlacement: LabelPlacement
              .onTicks, // Garante que os rótulos fiquem nos pontos de dados
          majorGridLines: MajorGridLines(
            color:
                Colors.grey.withOpacity(0.2), // Ajusta a opacidade das grades
          ),
        ),
        primaryYAxis: NumericAxis(
          minimum: 0,
          maximum: calculateTotalCommissions(),
          interval: 100,
          edgeLabelPlacement:
              EdgeLabelPlacement.shift, // Deslocamento de etiquetas
          majorGridLines: MajorGridLines(
            color:
                Colors.grey.withOpacity(0.2), // Ajusta a opacidade das grades
          ),
        ),
        series: <CartesianSeries<ChartDataStruct, String>>[
          SplineAreaSeries<ChartDataStruct, String>(
            dataSource: chartData,
            borderColor: Color(0xFFFF4C00), // Cor da borda da linha
            borderWidth: 2, // Largura da borda da linha
            color: Color(0xFFFF4C00)
                .withOpacity(0.6), // Cor de preenchimento com opacidade
            xValueMapper: (ChartDataStruct data, _) => data.dataEntrega,
            yValueMapper: (ChartDataStruct data, _) => data.comissaoVendedor,
            name: 'Comissões',
            markerSettings:
                MarkerSettings(isVisible: true), // Mostrar marcadores
            splineType:
                SplineType.cardinal, // Mantém o estilo spline para a área
          ),
        ],
        tooltipBehavior: TooltipBehavior(enable: true),
      ),
    );
  }
}

class ChartDataStruct {
  final String dataEntrega;
  final double comissaoVendedor;

  ChartDataStruct({required this.dataEntrega, required this.comissaoVendedor});

  factory ChartDataStruct.fromJson(Map<String, dynamic> json) {
    String formattedDate =
        DateFormat('dd/MM').format(DateTime.parse(json['data_entrega']));

    return ChartDataStruct(
      dataEntrega: formattedDate,
      comissaoVendedor: json['comissao_vendedor'].toDouble(),
    );
  }
}
// Set your widget name, define your parameter, and then add the
// boilerplate code using the green button on the right!
Did you check FlutterFlow's Documentation for this topic?
Yes
1
1 reply