@@ -4,17 +4,16 @@ import 'dart:io';
44
55import 'package:dio/dio.dart' ;
66import 'package:flutter/foundation.dart' ;
7+ import 'package:grade_plus_plus/entities/course/PassedCourse.dart' ;
78
89import 'LocalKeyValuePersistence.dart' ;
910import 'entities/course/BaseCourseData.dart' ;
1011import 'entities/course/Course.dart' ;
1112import 'entities/course/CourseDifficulty.dart' ;
12- import 'entities/course/PassedCourseData.dart' ;
1313import 'entities/course/PredictedCourse.dart' ;
1414import 'entities/course/SuggestedCourseData.dart' ;
1515import 'entities/user/FormData.dart' as UserFD;
1616import 'entities/user/SchoolData.dart' ;
17- import 'entities/user/SemesterData.dart' ;
1817import 'entities/user/Teacher.dart' ;
1918import 'entities/user/UserData.dart' ;
2019
@@ -84,14 +83,13 @@ class DataFetcher {
8483 }
8584 }
8685
87- static UserData fetchUserData () {
88- // To be implemented for data fetching
89- return new UserData (
90- estYear: null ,
91- schoolData: null ,
92- favSubjects: null ,
93- favTeachers: null ,
94- semesterDataList: null );
86+ static Future <UserData > fetchUserData () async {
87+ try {
88+ var res = await dio.get ("user/profile/" );
89+ return UserData .fromJson (res.data);
90+ } on DioError catch (_) {
91+ return LocalKeyValuePersistence .getUserData ();
92+ }
9593 }
9694
9795 static List <SuggestedCourseData > fetchSuggestedCourses () {
@@ -123,6 +121,36 @@ class DataFetcher {
123121 }
124122 }
125123
124+ static Future <bool > updateName (String name) async {
125+ try {
126+ await dio.patch (
127+ "user/profile/" ,
128+ data: {"name" : name},
129+ );
130+ return true ;
131+ } on DioError catch (_) {
132+ return false ;
133+ }
134+ }
135+
136+ static Future <bool > updateFavorites (
137+ Set <String > courses,
138+ Set <String > teachers,
139+ ) async {
140+ try {
141+ await dio.post (
142+ "user/favorites" ,
143+ data: json.encode ({
144+ "courses" : courses.toList (),
145+ "teachers" : teachers.toList (),
146+ }),
147+ );
148+ return true ;
149+ } on DioError catch (_) {
150+ return false ;
151+ }
152+ }
153+
126154 static List <PredictedCourse > fetchDefaultPredictedCourses () {
127155 return < PredictedCourse > [
128156 PredictedCourse (
@@ -136,10 +164,8 @@ class DataFetcher {
136164 return UserData (
137165 name: 'Test Subject' ,
138166 schoolData: SchoolData (
139- department: 'Computer Science' ,
140- semester: 5 ,
167+ school: 'Computer Science' ,
141168 ),
142- estYear: 2021 ,
143169 favSubjects: < String > [
144170 "astronomy" ,
145171 "object oriented programming" ,
@@ -150,49 +176,16 @@ class DataFetcher {
150176 "mr bean" ,
151177 "the janitor" ,
152178 ],
153- semesterDataList: < SemesterData > [
154- SemesterData (
155- id: 1 ,
156- courseDataList: < PassedCourseData > [
157- PassedCourseData (
158- baseData: BaseCourseData (
159- title: 'My course title' ,
160- code: 'ABC-01-234' ,
161- teacher: 'John Smith' ,
162- averageGrade: 9.9 ,
163- difficulty: CourseDifficulty .EASY ,
164- ),
165- grade: 9 ,
166- year: '2013-2014' ,
167- ),
168- PassedCourseData (
169- baseData: BaseCourseData (
170- title: 'Some subject' ,
171- code: 'ABC-91-114' ,
172- teacher: 'Dr Jeff' ,
173- averageGrade: 7.5 ,
174- difficulty: CourseDifficulty .MEDIUM ,
175- ),
176- grade: 10 ,
177- year: '2013-2014' ,
178- ),
179- ],
179+ passedCourses: < PassedCourse > [
180+ PassedCourse (
181+ courseID: "40002935" ,
182+ grade: 9 ,
183+ year: '2013-2014' ,
180184 ),
181- SemesterData (
182- id: 2 ,
183- courseDataList: < PassedCourseData > [
184- PassedCourseData (
185- baseData: BaseCourseData (
186- title: 'My new course title' ,
187- code: 'XYZ-01-234' ,
188- teacher: 'Hello World' ,
189- averageGrade: 4.5 ,
190- difficulty: CourseDifficulty .HARD ,
191- ),
192- grade: 2 ,
193- year: '2013-2014' ,
194- ),
195- ],
185+ PassedCourse (
186+ courseID: "40002933" ,
187+ grade: 10 ,
188+ year: '2013-2014' ,
196189 ),
197190 ],
198191 );
0 commit comments