Inicio » Cursos » Flutter y Laravel Tienda Delivery

Uso de la API para sincronizar la BD | Curso Flutter y Laravel Tienda Delivery

Para llenar datos desde un servidor web en al Aplicativo debe existir una arquitectura llamada API la cual permite el intercambio de datos aplicaciones

Lección 42: Uso de la API para sincronizar la BD

Para llenar datos desde un servidor web en al Aplicativo debe existir una arquitectura llamada API la cual permite el intercambio de datos aplicaciones

import 'dart:convert';

import 'package:arequipalocal/api/Api.dart';
import 'package:arequipalocal/basededatos/Bd.dart';
import 'package:arequipalocal/modelo/Categoria.dart';
import 'package:arequipalocal/modelo/Producto.dart';
import 'package:arequipalocal/modelo/Subcategoria.dart';
import 'package:arequipalocal/pantalla/PantallaCarrito.dart';
import 'package:arequipalocal/pantalla/PantallaInicio.dart';
import 'package:arequipalocal/pantalla/PantallaProductos.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:shared_preferences/shared_preferences.dart';
import 'package:provider/provider.dart';
class PantallaCategoria extends StatefulWidget {
  @override
  _PantallaCategoriaState createState() => _PantallaCategoriaState();
}

var BD = DBHelper();
class _PantallaCategoriaState extends State<PantallaCategoria> {
  final GlobalKey<ScaffoldState> _globalKey = new GlobalKey<ScaffoldState>();
  Future<List<Categoria>> _getData() async{
    var respuesta = await http.get(
      Uri.encodeFull("http://arequipalocal.com/api/enviarproductos"),
      headers: { 'Accept' : 'application/json'}
    );

    setState(() {
      var data = json.decode(respuesta.body);
      //print(data.toString());
      if(data!= null){
        // llenar categorias
        var _categorias = data['categorias'];
        BD.deleteTable("categoria", "1");
        for(int i=0; i<_categorias.length;i++){
          var registro = Categoria(
            _categorias[i]['id'],
            _categorias[i]['nombre'],
            _categorias[i]['urlfoto']
          );
          //print(registro.toString());
          BD.saveCategoria(registro);
        }
        // llenar subcategorias
        var _subcategorias = data['subcategorias'];
        BD.deleteTable("subcategoria", "1");
        for(int i=0; i<_subcategorias.length;i++){
          var registro = Subcategoria(
              _subcategorias[i]['id'],
              _subcategorias[i]['nombre'],
              _subcategorias[i]['urlfoto'],
              _subcategorias[i]['categorias_id'],
          );
          BD.saveSubcategoria(registro);
        }

        // llenar productos
        var _productos = data['productos'];
        BD.deleteTable("producto", "1");
        for(int i=0; i<_productos.length;i++){
          var registro = Producto(
            _productos[i]['id'],
            _productos[i]['nombre'],
            _productos[i]['descripcion'],
            double.parse(_productos[i]['precio']),
            _productos[i]['urlfoto'],
            _productos[i]['unidad'],
            _productos[i]['subcategorias_id'],
          );
          BD.saveProducto(registro);
        }
        print("ok");

      }
      else{
        print("Error");
      }
    });

  }

  @override
  void initState() {
    // TODO: implement initState
    _getData();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
      return Scaffold()
        

  }

  
}

 


1653 visitas

Cursos que pueden interesarte

Codea App Codea App

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

You Fb Tik Pin

© Todos los derechos reservados Codea App | Cursos de programación | 2020 - 2023