2020-02-02 14:08:58 +08:00
|
|
|
import 'package:json_annotation/json_annotation.dart';
|
|
|
|
part 'bitbucket.g.dart';
|
|
|
|
|
2020-02-02 16:40:12 +08:00
|
|
|
@JsonSerializable(fieldRename: FieldRename.snake)
|
|
|
|
class BbPagination {
|
|
|
|
int pagelen;
|
|
|
|
int size;
|
|
|
|
int page;
|
|
|
|
String next;
|
|
|
|
List values;
|
|
|
|
BbPagination();
|
|
|
|
factory BbPagination.fromJson(Map<String, dynamic> json) =>
|
|
|
|
_$BbPaginationFromJson(json);
|
|
|
|
}
|
|
|
|
|
2020-02-02 14:08:58 +08:00
|
|
|
@JsonSerializable(fieldRename: FieldRename.snake)
|
2020-02-02 18:58:05 +08:00
|
|
|
class BbRepoOwner {
|
2020-02-02 16:40:12 +08:00
|
|
|
String nickname;
|
2020-02-02 14:08:58 +08:00
|
|
|
String displayName;
|
2020-02-02 16:40:12 +08:00
|
|
|
String type; // user, team
|
2020-02-02 14:24:22 +08:00
|
|
|
Map<String, dynamic> links;
|
|
|
|
String get avatarUrl => links['avatar']['href'];
|
2020-02-02 18:58:05 +08:00
|
|
|
BbRepoOwner();
|
|
|
|
factory BbRepoOwner.fromJson(Map<String, dynamic> json) =>
|
|
|
|
_$BbRepoOwnerFromJson(json);
|
|
|
|
}
|
|
|
|
|
|
|
|
@JsonSerializable(fieldRename: FieldRename.snake)
|
|
|
|
class BbUser extends BbRepoOwner {
|
|
|
|
String username;
|
|
|
|
bool isStaff;
|
|
|
|
DateTime createdOn;
|
2020-05-11 18:27:18 +05:30
|
|
|
String accountId;
|
2020-02-02 14:08:58 +08:00
|
|
|
BbUser();
|
|
|
|
factory BbUser.fromJson(Map<String, dynamic> json) => _$BbUserFromJson(json);
|
|
|
|
}
|
2020-02-02 16:40:12 +08:00
|
|
|
|
|
|
|
@JsonSerializable(fieldRename: FieldRename.snake)
|
|
|
|
class BbRepo {
|
|
|
|
String name;
|
2020-02-02 18:58:05 +08:00
|
|
|
BbRepoOwner owner;
|
2020-02-02 16:40:12 +08:00
|
|
|
String website;
|
|
|
|
String language;
|
|
|
|
int size;
|
|
|
|
String type; // repository
|
|
|
|
bool isPrivate;
|
|
|
|
DateTime createdOn;
|
|
|
|
DateTime updatedOn;
|
|
|
|
String description;
|
|
|
|
String fullName;
|
2020-02-02 18:58:05 +08:00
|
|
|
String slug;
|
|
|
|
BbRepoMainbranch mainbranch;
|
2020-02-02 16:40:12 +08:00
|
|
|
Map<String, dynamic> links;
|
2020-02-02 19:06:48 +08:00
|
|
|
String get ownerLogin => fullName.split('/')[0]; // owner has no username
|
2020-02-02 16:40:12 +08:00
|
|
|
String get avatarUrl => links['avatar']['href'];
|
|
|
|
BbRepo();
|
|
|
|
factory BbRepo.fromJson(Map<String, dynamic> json) => _$BbRepoFromJson(json);
|
|
|
|
}
|
2020-02-02 18:58:05 +08:00
|
|
|
|
|
|
|
@JsonSerializable(fieldRename: FieldRename.snake)
|
|
|
|
class BbRepoMainbranch {
|
|
|
|
String type;
|
|
|
|
String name;
|
|
|
|
BbRepoMainbranch();
|
|
|
|
factory BbRepoMainbranch.fromJson(Map<String, dynamic> json) =>
|
|
|
|
_$BbRepoMainbranchFromJson(json);
|
|
|
|
}
|
2020-02-02 19:50:00 +08:00
|
|
|
|
|
|
|
@JsonSerializable(fieldRename: FieldRename.snake)
|
|
|
|
class BbTree {
|
|
|
|
String type;
|
|
|
|
String path;
|
|
|
|
int size;
|
2020-02-02 23:02:58 +08:00
|
|
|
Map<String, dynamic> links;
|
2020-02-02 19:50:00 +08:00
|
|
|
BbTree();
|
|
|
|
factory BbTree.fromJson(Map<String, dynamic> json) => _$BbTreeFromJson(json);
|
|
|
|
}
|
2020-02-03 14:40:56 +08:00
|
|
|
|
|
|
|
@JsonSerializable(fieldRename: FieldRename.snake)
|
|
|
|
class BbCommit {
|
|
|
|
String message;
|
|
|
|
DateTime date;
|
|
|
|
String hash;
|
|
|
|
BbCommitAuthor author;
|
|
|
|
BbCommit();
|
|
|
|
factory BbCommit.fromJson(Map<String, dynamic> json) =>
|
|
|
|
_$BbCommitFromJson(json);
|
|
|
|
}
|
|
|
|
|
|
|
|
@JsonSerializable(fieldRename: FieldRename.snake)
|
|
|
|
class BbCommitAuthor {
|
|
|
|
String raw;
|
|
|
|
BbRepoOwner user;
|
|
|
|
BbCommitAuthor();
|
|
|
|
factory BbCommitAuthor.fromJson(Map<String, dynamic> json) =>
|
|
|
|
_$BbCommitAuthorFromJson(json);
|
|
|
|
}
|
2020-05-17 09:50:11 +05:30
|
|
|
|
|
|
|
@JsonSerializable(fieldRename: FieldRename.snake)
|
|
|
|
class BbIssues {
|
|
|
|
String priority;
|
|
|
|
String state;
|
|
|
|
BbRepo repository;
|
|
|
|
String title;
|
|
|
|
BbRepoOwner reporter;
|
|
|
|
DateTime createdOn;
|
|
|
|
Map<String, dynamic> links;
|
|
|
|
String get issueLink => links['self']['href'];
|
|
|
|
BbIssues();
|
|
|
|
factory BbIssues.fromJson(Map<String, dynamic> json) =>
|
|
|
|
_$BbIssuesFromJson(json);
|
|
|
|
}
|
|
|
|
|
|
|
|
@JsonSerializable(fieldRename: FieldRename.snake)
|
|
|
|
class BbPulls {
|
|
|
|
String description;
|
|
|
|
BbRepoOwner author;
|
|
|
|
String title;
|
|
|
|
Map<String, dynamic> links;
|
|
|
|
String get pullRequestLink => links['self']['href'];
|
|
|
|
DateTime createdOn;
|
|
|
|
BbPulls();
|
|
|
|
factory BbPulls.fromJson(Map<String, dynamic> json) =>
|
|
|
|
_$BbPullsFromJson(json);
|
|
|
|
}
|