0

I have a class EventProvider of list of events. Within this class there is a method getDataFromWeb() for fetching list of events from a URL.

import 'dart:convert';

import 'package:calendar_app/model/event.dart';
import 'package:calendar_app/utils.dart';
import 'package:flutter/cupertino.dart';
import 'package:http/http.dart' as http;

class EventProvider extends ChangeNotifier {
  final List<Event> _events = [];

  List<Event> get events => _events;

  void addEvent(Event event) {
    _events.add(event);

    notifyListeners();
  }
    
Future<List<Event>> getDataFromWeb() async {
        var data = await http.get(Uri.parse("https://js.syncfusion.com/demos/ejservices  /api/Schedule/LoadData"));
        var jsonData = json.decode(data.body);

    final List<Event> _events = [];

    for (var data in jsonData) {
      Event event = Event(
        title: data['Subject'],
        from: DateTime.parse(data['StartTime']),
        to: DateTime.parse(data['EndTime']),
        description: data['Description'],
        isAllDay: data['AllDay'],
      );
      _events.add(event);
    }
    return _events;
  }

  void deleteEvent(Event event) {
    _events.remove(event);

    notifyListeners();
  }

  void editEvent(Event newEvent, Event oldEvent) {
    final index = _events.indexOf(oldEvent);
    _events[index] = newEvent;

    notifyListeners();
  }
}

How should I call this method getDataFromWeb() so that it can populate the queried data from URL to the list of events?

0 Answers0