1
0
mirror of https://github.com/git-touch/git-touch synced 2024-12-24 14:51:28 +01:00
git-touch-android-ios-app/lib/models/github_event.dart
2019-12-08 14:21:14 +08:00

56 lines
1.2 KiB
Dart

import 'package:git_touch/utils/utils.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:tuple/tuple.dart';
part 'github_event.g.dart';
@JsonSerializable(fieldRename: FieldRename.snake)
class GithubEvent {
GithubEventActor actor;
String type;
GithubEventRepo repo;
String createdAt;
Map<String, dynamic> payload;
Tuple2<String, String> _repo;
String get repoOwner {
if (_repo == null) {
_repo = parseRepositoryFullName(repo.name);
}
return _repo.item1;
}
String get repoName {
if (_repo == null) {
_repo = parseRepositoryFullName(repo.name);
}
return _repo.item2;
}
GithubEvent();
factory GithubEvent.fromJson(Map<String, dynamic> json) =>
_$GithubEventFromJson(json);
}
@JsonSerializable(fieldRename: FieldRename.snake)
class GithubEventActor {
String login;
String avatarUrl;
GithubEventActor();
factory GithubEventActor.fromJson(Map<String, dynamic> json) =>
_$GithubEventActorFromJson(json);
}
@JsonSerializable(fieldRename: FieldRename.snake)
class GithubEventRepo {
String name;
GithubEventRepo();
factory GithubEventRepo.fromJson(Map<String, dynamic> json) =>
_$GithubEventRepoFromJson(json);
}