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?