Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement auto-serialization #1072

Merged
merged 23 commits into from
Jul 17, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
54b02b3
Implement auto-serialization
rubuy-74 Dec 24, 2023
c443179
Resolve linting problems
rubuy-74 Dec 24, 2023
75db6bd
Rearrange generated files
rubuy-74 Dec 29, 2023
477a85f
Resolve conflicts
rubuy-74 Jan 4, 2024
ff7ac5c
Resolve database naming
rubuy-74 Jan 25, 2024
b2da322
Resolve database naming
rubuy-74 Jan 25, 2024
a2bd5ea
Bump db version for changed files
rubuy-74 Jan 29, 2024
727cb1a
Merge branch 'develop' into feature/json-serialization
rubuy-74 Jan 29, 2024
672d7da
Merge branch 'develop' into feature/json-serialization
rubuy-74 Feb 7, 2024
5f46981
Merge branch 'develop' into feature/json-serialization
rubuy-74 Feb 9, 2024
89462cd
Merge branch 'develop' into feature/json-serialization
rubuy-74 Feb 20, 2024
9c91dbc
Resolve remaining issues
rubuy-74 Feb 27, 2024
730baf8
Merge branch 'develop' into feature/json-serialization
rubuy-74 Feb 29, 2024
8420f38
Fix linter issues
rubuy-74 Mar 4, 2024
d1cc8b1
Merge branch 'develop' into feature/json-serialization
rubuy-74 May 29, 2024
d0dcf2b
Separate converters into different files
rubuy-74 Jun 5, 2024
7a78e8a
Merge branch 'develop' into feature/json-serialization
rubuy-74 Jun 5, 2024
05e6e57
Merge branch 'develop' into feature/json-serialization
DGoiana Jun 19, 2024
d867a7b
Merge branch 'develop' into feature/json-serialization
DGoiana Jul 5, 2024
91ac998
linter fix
DGoiana Jul 5, 2024
442ec58
Merge branch 'develop' into feature/json-serialization
rubuy-74 Jul 15, 2024
8885a51
Merge branch 'develop' into feature/json-serialization
rubuy-74 Jul 15, 2024
a53c0e9
Merge branch 'feature/json-serialization' of github.com:NIAEFEUP/uni …
rubuy-74 Jul 15, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Rearrange generated files
  • Loading branch information
rubuy-74 committed Dec 29, 2023
commit 75db6bdc1c6acc4498d1cc2b45db709435286888
6 changes: 5 additions & 1 deletion uni/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,8 @@ targets:
mockito|mockBuilder:
options:
build_extensions:
'^test/{{}}.dart': 'test/mocks/{{}}.mocks.dart'
'^test/{{}}.dart': 'test/mocks/{{}}.mocks.dart'
source_gen:combining_builder:
options:
build_extensions:
'^lib/{{}}.dart' : 'lib/generated/{{}}.g.dart'

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

44 changes: 44 additions & 0 deletions uni/lib/generated/model/entities/course_units/course_unit.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion uni/lib/model/entities/bug_report.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:tuple/tuple.dart';

part 'bug_report.g.dart';
part '../../generated/model/entities/bug_report.g.dart';

class TupleConverter extends JsonConverter<Tuple2<String, String>?, String?> {
const TupleConverter();
Expand Down
2 changes: 1 addition & 1 deletion uni/lib/model/entities/bus.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:json_annotation/json_annotation.dart';

part 'bus.g.dart';
part '../../generated/model/entities/bus.g.dart';

/// Stores information about a bus.
///
Expand Down
2 changes: 1 addition & 1 deletion uni/lib/model/entities/bus_stop.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:uni/model/entities/trip.dart';

part 'bus_stop.g.dart';
part '../../generated/model/entities/bus_stop.g.dart';

/// Stores information about a bus stop.
@JsonSerializable()
Expand Down
2 changes: 1 addition & 1 deletion uni/lib/model/entities/calendar_event.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:json_annotation/json_annotation.dart';

part 'calendar_event.g.dart';
part '../../generated/model/entities/calendar_event.g.dart';

/// An event in the school calendar
@JsonSerializable()
Expand Down
23 changes: 18 additions & 5 deletions uni/lib/model/entities/course.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:json_annotation/json_annotation.dart';

part 'course.g.dart';
part '../../generated/model/entities/course.g.dart';

/// Stores information about a course.
///
Expand All @@ -11,11 +11,11 @@ part 'course.g.dart';
/// - The course current `year`
/// - The date of the `firstEnrollment`
/// - The course `state`
@JsonSerializable()
@JsonSerializable(createFactory: false)
class Course {
Course({
required this.id,
this.festId = 0,
this.festId,
this.name,
this.abbreviation,
this.currYear,
Expand All @@ -26,10 +26,23 @@ class Course {
this.currentAverage,
});

factory Course.fromJson(Map<String, dynamic> json) => _$CourseFromJson(json);
factory Course.fromJson(Map<String, dynamic> json) {
return Course(
id: json['cur_id'] as int,
festId: json['fest_id'] as int?,
name: json['cur_nome'] as String?,
abbreviation: json['abbreviation'] as String?,
currYear: json['ano_curricular'] as String?,
firstEnrollment: json['fest_a_lect_1_insc'] as int?,
state: json['state'] as String?,
faculty: json['inst_sigla'].toString().toLowerCase(),
finishedEcts: json['finishedEcts'] as num?,
currentAverage: json['currentAverage'] as num?,
);
}
@JsonKey(name: 'cur_id')
final int id;
@JsonKey(name: 'fest_id')
@JsonKey(name: 'fest_id ')
final int? festId;
@JsonKey(name: 'cur_nome')
final String? name;
Expand Down
2 changes: 1 addition & 1 deletion uni/lib/model/entities/course_units/course_unit.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:json_annotation/json_annotation.dart';

part 'course_unit.g.dart';
part '../../../generated/model/entities/course_units/course_unit.g.dart';

/// Stores information about a course unit.
@JsonSerializable()
Expand Down
34 changes: 1 addition & 33 deletions uni/lib/model/entities/exam.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,40 +3,8 @@ import 'package:json_annotation/json_annotation.dart';
import 'package:logger/logger.dart';
import 'package:uni/model/entities/app_locale.dart';

part 'exam.g.dart';
part '../../generated/model/entities/exam.g.dart';

enum WeekDays {
monday('Segunda'),
tuesday('Terça'),
wednesday('Quarta'),
thursday('Quinta'),
friday('Sexta'),
saturday('Sábado'),
sunday('Domingo');

const WeekDays(this.day);

final String day;
}

enum Months {
january('janeiro'),
february('fevereiro'),
march('março'),
april('abril'),
may('maio'),
june('junho'),
july('julho'),
august('agosto'),
september('setembro'),
october('outubro'),
november('novembro'),
december('dezembro');

const Months(this.month);

final String month;
}

class DateTimeConverter extends JsonConverter<DateTime, String> {
const DateTimeConverter();
Expand Down
25 changes: 12 additions & 13 deletions uni/lib/model/entities/lecture.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:logger/logger.dart';

part 'lecture.g.dart';
part '../../generated/model/entities/lecture.g.dart';


class DateTimeConverter extends JsonConverter<DateTime, String> {
const DateTimeConverter();
Expand Down Expand Up @@ -73,21 +74,19 @@ class Lecture {
String classNumber,
int occurrId,
) {
final startTimeHours = int.parse(startTimeString.substring(0, 2));
final startTimeMinutes = int.parse(startTimeString.substring(3, 5));
final endTimeHours =
(startTimeMinutes + (blocks * 30)) ~/ 60 + startTimeHours;
final endTimeMinutes = (startTimeMinutes + (blocks * 30)) % 60;
final startTimeList = startTimeString.split(':');
final startTime = day.add(
Duration(
hours: int.parse(startTimeList[0]),
minutes: int.parse(startTimeList[1]),
),
);
final endTime = startTime.add(Duration(minutes: 30 * blocks));
return Lecture(
subject,
typeClass,
day.add(Duration(hours: startTimeHours, minutes: startTimeMinutes)),
day.add(
Duration(
hours: startTimeMinutes + endTimeHours,
minutes: startTimeMinutes + endTimeMinutes,
),
),
startTime,
endTime,
blocks,
room,
teacher,
Expand Down
2 changes: 1 addition & 1 deletion uni/lib/model/entities/library_occupation.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import 'dart:math';

import 'package:json_annotation/json_annotation.dart';

part 'library_occupation.g.dart';
part '../../generated/model/entities/library_occupation.g.dart';

/// Overall occupation of the library
@JsonSerializable()
Expand Down
2 changes: 1 addition & 1 deletion uni/lib/model/entities/location_group.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import 'package:json_annotation/json_annotation.dart';
import 'package:latlong2/latlong.dart';
import 'package:uni/model/entities/location.dart';

part 'location_group.g.dart';
part '../../generated/model/entities/location_group.g.dart';

/// Store information about a location marker.
/// What's located in each floor, like vending machines, rooms, etc...
Expand Down
3 changes: 2 additions & 1 deletion uni/lib/model/entities/meal.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ import 'package:intl/intl.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:uni/model/utils/day_of_week.dart';

part 'meal.g.dart';
part '../../generated/model/entities/meal.g.dart';


class DateTimeConverter extends JsonConverter<DateTime, String> {
const DateTimeConverter();
Expand Down
2 changes: 1 addition & 1 deletion uni/lib/model/entities/reference.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:json_annotation/json_annotation.dart';

part 'reference.g.dart';
part '../../generated/model/entities/reference.g.dart';

class DateTimeConverter extends JsonConverter<DateTime, String> {
const DateTimeConverter();
Expand Down
Loading