GiteaClient/lib/model/repository.dart
Balazs Toldi 29a89b951c
All checks were successful
ci/woodpecker/push/flutterBuild Pipeline was successful
Repository list sort by date
2022-05-09 12:14:50 +02:00

251 lines
7.2 KiB
Dart

import 'package:equatable/equatable.dart';
import 'package:gitea_client/model/user.dart';
class Repository extends Equatable {
int id;
User owner;
String name;
String? fullName;
String? description;
bool? empty;
bool? private;
bool? fork;
bool? template;
bool? mirror;
int? size;
String? language;
String? languagesUrl;
String? htmlUrl;
String? sshUrl;
String? cloneUrl;
String? originalUrl;
String? website;
int? starsCount;
int? forksCount;
int? watchersCount;
int? openIssuesCount;
int? openPrCounter;
int? releaseCounter;
String? defaultBranch;
bool? archived;
String? createdAt;
DateTime? updatedAt;
Permissions? permissions;
bool? hasIssues;
InternalTracker? internalTracker;
bool? hasWiki;
bool? hasPullRequests;
bool? hasProjects;
bool? ignoreWhitespaceConflicts;
bool? allowMergeCommits;
bool? allowRebase;
bool? allowRebaseExplicit;
bool? allowSquashMerge;
String? defaultMergeStyle;
String? avatarUrl;
bool? internal;
String? mirrorInterval;
String? mirrorUpdated;
Repository(
{required this.id,
required this.owner,
required this.name,
this.fullName,
this.description,
this.empty,
this.private,
this.fork,
this.template,
this.mirror,
this.size,
this.language,
this.languagesUrl,
this.htmlUrl,
this.sshUrl,
this.cloneUrl,
this.originalUrl,
this.website,
this.starsCount,
this.forksCount,
this.watchersCount,
this.openIssuesCount,
this.openPrCounter,
this.releaseCounter,
this.defaultBranch,
this.archived,
this.createdAt,
this.updatedAt,
this.permissions,
this.hasIssues,
this.internalTracker,
this.hasWiki,
this.hasPullRequests,
this.hasProjects,
this.ignoreWhitespaceConflicts,
this.allowMergeCommits,
this.allowRebase,
this.allowRebaseExplicit,
this.allowSquashMerge,
this.defaultMergeStyle,
this.avatarUrl,
this.internal,
this.mirrorInterval,
this.mirrorUpdated});
Repository.fromJson(Map<String, dynamic> json)
: name = json['name'],
id = json['id'],
owner = User.fromJson(json['owner']) {
fullName = json['full_name'];
description = json['description'];
empty = json['empty'];
private = json['private'];
fork = json['fork'];
template = json['template'];
mirror = json['mirror'];
size = json['size'];
language = json['language'];
languagesUrl = json['languages_url'];
htmlUrl = json['html_url'];
sshUrl = json['ssh_url'];
cloneUrl = json['clone_url'];
originalUrl = json['original_url'];
website = json['website'];
starsCount = json['stars_count'];
forksCount = json['forks_count'];
watchersCount = json['watchers_count'];
openIssuesCount = json['open_issues_count'];
openPrCounter = json['open_pr_counter'];
releaseCounter = json['release_counter'];
defaultBranch = json['default_branch'];
archived = json['archived'];
createdAt = json['created_at'];
updatedAt = DateTime.parse(json['updated_at']);
permissions = json['permissions'] != null
? Permissions.fromJson(json['permissions'])
: null;
hasIssues = json['has_issues'];
internalTracker = json['internal_tracker'] != null
? InternalTracker.fromJson(json['internal_tracker'])
: null;
hasWiki = json['has_wiki'];
hasPullRequests = json['has_pull_requests'];
hasProjects = json['has_projects'];
ignoreWhitespaceConflicts = json['ignore_whitespace_conflicts'];
allowMergeCommits = json['allow_merge_commits'];
allowRebase = json['allow_rebase'];
allowRebaseExplicit = json['allow_rebase_explicit'];
allowSquashMerge = json['allow_squash_merge'];
defaultMergeStyle = json['default_merge_style'];
avatarUrl = json['avatar_url'];
internal = json['internal'];
mirrorInterval = json['mirror_interval'];
mirrorUpdated = json['mirror_updated'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id;
data['owner'] = owner.toJson();
data['name'] = name;
data['full_name'] = fullName;
data['description'] = description;
data['empty'] = empty;
data['private'] = private;
data['fork'] = fork;
data['template'] = template;
data['mirror'] = mirror;
data['size'] = size;
data['language'] = language;
data['languages_url'] = languagesUrl;
data['html_url'] = htmlUrl;
data['ssh_url'] = sshUrl;
data['clone_url'] = cloneUrl;
data['original_url'] = originalUrl;
data['website'] = website;
data['stars_count'] = starsCount;
data['forks_count'] = forksCount;
data['watchers_count'] = watchersCount;
data['open_issues_count'] = openIssuesCount;
data['open_pr_counter'] = openPrCounter;
data['release_counter'] = releaseCounter;
data['default_branch'] = defaultBranch;
data['archived'] = archived;
data['created_at'] = createdAt;
data['updated_at'] = updatedAt;
if (permissions != null) {
data['permissions'] = permissions!.toJson();
}
data['has_issues'] = hasIssues;
if (internalTracker != null) {
data['internal_tracker'] = internalTracker!.toJson();
}
data['has_wiki'] = hasWiki;
data['has_pull_requests'] = hasPullRequests;
data['has_projects'] = hasProjects;
data['ignore_whitespace_conflicts'] = ignoreWhitespaceConflicts;
data['allow_merge_commits'] = allowMergeCommits;
data['allow_rebase'] = allowRebase;
data['allow_rebase_explicit'] = allowRebaseExplicit;
data['allow_squash_merge'] = allowSquashMerge;
data['default_merge_style'] = defaultMergeStyle;
data['avatar_url'] = avatarUrl;
data['internal'] = internal;
data['mirror_interval'] = mirrorInterval;
data['mirror_updated'] = mirrorUpdated;
return data;
}
@override
List<Object> get props => [id, owner, name];
}
class Permissions {
bool? admin;
bool? push;
bool? pull;
Permissions({this.admin, this.push, this.pull});
Permissions.fromJson(Map<String, dynamic> json) {
admin = json['admin'];
push = json['push'];
pull = json['pull'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['admin'] = admin;
data['push'] = push;
data['pull'] = pull;
return data;
}
}
class InternalTracker {
bool? enableTimeTracker;
bool? allowOnlyContributorsToTrackTime;
bool? enableIssueDependencies;
InternalTracker(
{this.enableTimeTracker,
this.allowOnlyContributorsToTrackTime,
this.enableIssueDependencies});
InternalTracker.fromJson(Map<String, dynamic> json) {
enableTimeTracker = json['enable_time_tracker'];
allowOnlyContributorsToTrackTime =
json['allow_only_contributors_to_track_time'];
enableIssueDependencies = json['enable_issue_dependencies'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['enable_time_tracker'] = enableTimeTracker;
data['allow_only_contributors_to_track_time'] =
allowOnlyContributorsToTrackTime;
data['enable_issue_dependencies'] = enableIssueDependencies;
return data;
}
}