feature/convert-abstract-service-to-ts #1798

Merged
konrad merged 32 commits from dpschen/frontend:feature/convert-abstract-service-to-ts into main 2022-09-06 09:26:49 +00:00
33 changed files with 130 additions and 130 deletions
Showing only changes of commit 96f5f00c07 - Show all commits

View File

@ -11,8 +11,8 @@ export interface IAttachment extends AbstractModel {
}
export default class AttachmentModel extends AbstractModel implements IAttachment {
declare id: number
declare taskId: number
id!: number
taskId!: number
createdBy: IUser
file: IFile
created: Date
konrad marked this conversation as resolved Outdated

Why use declare for some properties instead of only defining the property?

Why use `declare` for some properties instead of only defining the property?

I had to use declare everywhere where a property 'isn't defined'. All of them are, but typescript doesn't understand that this happens mostly in the constructor of the abstract service.
Not sure if this here is the right way to do things. Might be one reason why the build fails.

I had to use declare everywhere where a property 'isn't defined'. All of them are, but typescript doesn't understand that this happens mostly in the constructor of the abstract service. Not sure if this here is the right way to do things. Might be one reason why the build fails.

Makes sense!

Makes sense!

View File

@ -7,7 +7,7 @@ export interface IAvatar extends AbstractModel {
}
export default class AvatarModel extends AbstractModel implements IAvatar {
declare avatarProvider: AvatarProvider
avatarProvider!: AvatarProvider
defaults() {
return {

View File

@ -12,14 +12,14 @@ export interface IBackgroundImage extends AbstractModel {
}
export default class BackgroundImageModel extends AbstractModel implements IBackgroundImage {
declare id: number
declare url: string
declare thumb: string
declare info: {
id!: number
url!: string
thumb!: string
info!: {
author: string
authorName: string
}
declare blurHash: string
blurHash!: string
defaults() {
return {

View File

@ -17,13 +17,13 @@ export interface IBucket extends AbstractModel {
}
export default class BucketModel extends AbstractModel implements IBucket {
declare id: number
declare title: string
declare listId: number
declare limit: number
declare tasks: ITask[]
declare isDoneBucket: boolean
declare position: number
id!: number
title!: string
listId!: number
limit!: number
tasks!: ITask[]
isDoneBucket!: boolean
position!: number
createdBy: IUser
created: Date

View File

@ -6,8 +6,8 @@ export interface ICaldavToken extends AbstractModel {
}
export default class CaldavTokenModel extends AbstractModel implements ICaldavToken {
declare id: number
declare created: Date
id!: number
created!: Date
constructor(data? : Object) {
super(data)

View File

@ -6,8 +6,8 @@ interface IEmailUpdate extends AbstractModel {
}
export default class EmailUpdateModel extends AbstractModel implements IEmailUpdate {
declare newEmail: string
declare password: string
newEmail!: string
password!: string
defaults() {
return {

View File

@ -9,10 +9,10 @@ export interface IFile extends AbstractModel {
}
export default class FileModel extends AbstractModel implements IFile {
declare id: number
declare mime: string
declare name: string
declare size: number
id!: number
mime!: string
name!: string
size!: number
created: Date
constructor(data) {

View File

@ -18,13 +18,13 @@ export interface ILabel extends AbstractModel {
}
export default class LabelModel extends AbstractModel implements ILabel {
declare id: number
declare title: string
declare hexColor: string
declare description: string
declare createdBy: IUser
declare listId: number
declare textColor: string
id!: number
title!: string
hexColor!: string
description!: string
createdBy!: IUser
listId!: number
textColor!: string
created: Date
updated: Date

View File

@ -7,9 +7,9 @@ export interface ILabelTask extends AbstractModel {
}
export default class LabelTask extends AbstractModel implements ILabelTask {
declare id: number
declare taskId: number
declare labelId: number
id!: number
taskId!: number
labelId!: number
defaults() {
return {

View File

@ -16,14 +16,14 @@ export interface ILinkShare extends AbstractModel {
}
export default class LinkShareModel extends AbstractModel implements ILinkShare {
declare id: number
declare hash: string
declare right: Right
id!: number
hash!: string
right!: Right
sharedBy: IUser
declare sharingType: number // FIXME: use correct numbers
declare listId: number
declare name: string
declare password: string
sharingType!: number // FIXME: use correct numbers
listId!: number
name!: string
password!: string
created: Date
updated: Date

View File

@ -27,20 +27,20 @@ export interface IList extends AbstractModel {
}
export default class ListModel extends AbstractModel implements IList {
declare id: number
declare title: string
declare description: string
id!: number
title!: string
description!: string
owner: IUser
tasks: ITask[]
declare namespaceId: INamespace['id']
declare isArchived: boolean
declare hexColor: string
declare identifier: string
declare backgroundInformation: any
declare isFavorite: boolean
declare subscription: ISubscription
declare position: number
declare backgroundBlurHash: string
namespaceId!: INamespace['id']
isArchived!: boolean
hexColor!: string
identifier!: string
backgroundInformation!: any
isFavorite!: boolean
subscription!: ISubscription
position!: number
backgroundBlurHash!: string
created: Date
updated: Date

View File

@ -9,8 +9,8 @@ export interface IListDuplicate extends AbstractModel {
}
export default class ListDuplicateModel extends AbstractModel implements IListDuplicate {
declare listId: number
declare namespaceId: INamespace['id']
listId!: number
namespaceId!: INamespace['id']
list: IList
constructor(data) {

View File

@ -18,14 +18,14 @@ export interface INamespace extends AbstractModel {
}
export default class NamespaceModel extends AbstractModel implements INamespace {
declare id: number
declare title: string
declare description: string
id!: number
title!: string
description!: string
owner: IUser
lists: IList[]
declare isArchived: boolean
declare hexColor: string
declare subscription: ISubscription
isArchived!: boolean
hexColor!: string
subscription!: ISubscription
created: Date
updated: Date

View File

@ -51,10 +51,10 @@ export interface INotification extends AbstractModel {
}
export default class NotificationModel extends AbstractModel implements INotification {
declare id: number
declare name: string
declare notification: NotificationTask | NotificationAssigned | NotificationDeleted | NotificationCreated | NotificationMemberAdded
declare read: boolean
id!: number
name!: string
notification!: NotificationTask | NotificationAssigned | NotificationDeleted | NotificationCreated | NotificationMemberAdded
read!: boolean
readAt: Date | null
created: Date

View File

@ -8,8 +8,8 @@ export interface IPasswordReset extends AbstractModel {
export default class PasswordResetModel extends AbstractModel implements IPasswordReset {
token: string
declare newPassword: string
declare email: string
newPassword!: string
email!: string
constructor(data) {
super(data)

View File

@ -6,8 +6,8 @@ export interface IPasswordUpdate extends AbstractModel {
}
export default class PasswordUpdateModel extends AbstractModel implements IPasswordUpdate {
declare newPassword: string
declare oldPassword: string
newPassword!: string
oldPassword!: string
defaults() {
return {

View File

@ -21,10 +21,10 @@ export interface ISavedFilter extends AbstractModel {
}
export default class SavedFilterModel extends AbstractModel implements ISavedFilter {
declare id: 0
declare title: string
declare description: string
declare filters: {
id!: 0
title!: string
description!: string
filters!: {
sortBy: ('done' | 'id')[]
orderBy: ('asc' | 'desc')[]
filterBy: 'done'[]

View File

@ -11,9 +11,9 @@ export interface ISubscription extends AbstractModel {
}
export default class SubscriptionModel extends AbstractModel implements ISubscription {
declare id: number
declare entity: string // FIXME: correct type?
declare entityId: number // FIXME: correct type?
id!: number
entity!: string // FIXME: correct type?
entityId!: number // FIXME: correct type?
user: IUser
created: Date

View File

@ -63,39 +63,39 @@ export interface ITask extends AbstractModel {
export default class TaskModel extends AbstractModel implements ITask {
id: number
title: string
declare description: string
declare done: boolean
description!: string
done!: boolean
doneAt: Date | null
declare priority: Priority
priority!: Priority
labels: ILabel[]
assignees: IUser[]
dueDate: Date | null
startDate: Date | null
endDate: Date | null
declare repeatAfter: number | IRepeats
declare repeatFromCurrentDate: boolean
declare repeatMode: TaskRepeatMode
repeatAfter!: number | IRepeats
repeatFromCurrentDate!: boolean
repeatMode!: TaskRepeatMode
reminderDates: Date[]
declare parentTaskId: ITask['id']
declare hexColor: string
declare percentDone: number
declare relatedTasks: { [relationKind: string]: ITask } // FIXME: use relationKinds
parentTaskId!: ITask['id']
hexColor!: string
percentDone!: number
relatedTasks!: { [relationKind: string]: ITask } // FIXME: use relationKinds
attachments: IAttachment[]
declare identifier: string
declare index: number
declare isFavorite: boolean
declare subscription: ISubscription
identifier!: string
index!: number
isFavorite!: boolean
subscription!: ISubscription
declare position: number
declare kanbanPosition: number
position!: number
kanbanPosition!: number
createdBy: IUser
created: Date
updated: Date
listId: IList['id'] // Meta, only used when creating a new task
declare bucketId: IBucket['id']
bucketId!: IBucket['id']
constructor(data: Partial<ITask>) {
super(data)

View File

@ -10,8 +10,8 @@ export interface ITaskAssignee extends AbstractModel {
export default class TaskAssigneeModel extends AbstractModel implements ITaskAssignee {
created: Date
declare userId: IUser['id']
declare taskId: ITask['id']
userId!: IUser['id']
taskId!: ITask['id']
constructor(data) {
super(data)

View File

@ -13,9 +13,9 @@ export interface ITaskComment extends AbstractModel {
}
export default class TaskCommentModel extends AbstractModel implements ITaskComment {
declare id: number
declare taskId: ITask['id']
declare comment: string
id!: number
taskId!: ITask['id']
comment!: string
author: IUser
created: Date

View File

@ -30,10 +30,10 @@ export interface ITaskRelation extends AbstractModel {
}
export default class TaskRelationModel extends AbstractModel implements ITaskRelation {
declare id: number
declare otherTaskId: ITask['id']
declare taskId: ITask['id']
declare relationKind: RelationKind
id!: number
otherTaskId!: ITask['id']
taskId!: ITask['id']
relationKind!: RelationKind
createdBy: IUser
created: Date

View File

@ -16,11 +16,11 @@ export interface ITeam extends AbstractModel {
}
export default class TeamModel extends AbstractModel implements ITeam {
declare id: number
declare name: string
declare description: string
id!: number
name!: string
description!: string
members: ITeamMember[]
declare right: Right
right!: Right
createdBy: IUser
created: Date

View File

@ -6,7 +6,7 @@ export interface ITeamList extends TeamShareBaseModel {
}
export default class TeamListModel extends TeamShareBaseModel implements ITeamList {
declare listId: IList['id']
listId!: IList['id']
defaults() {
return {

View File

@ -7,8 +7,8 @@ export interface ITeamMember extends UserModel {
}
export default class TeamMemberModel extends UserModel implements ITeamMember {
declare admin: boolean
declare teamId: IList['id']
admin!: boolean
teamId!: IList['id']
defaults() {
return {

View File

@ -6,7 +6,7 @@ export interface ITeamNamespace extends TeamShareBaseModel {
}
export default class TeamNamespaceModel extends TeamShareBaseModel implements ITeamNamespace {
declare namespaceId: INamespace['id']
namespaceId!: INamespace['id']
defaults() {
return {

View File

@ -15,8 +15,8 @@ export interface ITeamShareBase extends AbstractModel {
* It is extended in a way so it can be used for namespaces as well for lists.
*/
export default class TeamShareBaseModel extends AbstractModel implements ITeamShareBase {
declare teamId: ITeam['id']
declare right: Right
teamId!: ITeam['id']
right!: Right
created: Date
updated: Date

View File

@ -7,9 +7,9 @@ export interface ITotp extends AbstractModel {
}
export default class TotpModel extends AbstractModel implements ITotp{
declare secret: string
declare enabled: boolean
declare url: string
secret!: string
enabled!: boolean
url!: string
defaults() {
return {

View File

@ -13,10 +13,10 @@ export interface IUser extends AbstractModel {
}
export default class UserModel extends AbstractModel implements IUser {
declare id: number
declare email: string
declare username: string
declare name: string
id!: number
email!: string
username!: string
name!: string
created: Date
updated: Date

View File

@ -7,7 +7,7 @@ export interface IUserList extends UserShareBaseModel {
// This class extends the user share model with a 'rights' parameter which is used in sharing
export default class UserListModel extends UserShareBaseModel implements IUserList {
declare listId: IList['id']
listId!: IList['id']
defaults() {
return {

View File

@ -7,7 +7,7 @@ export interface IUserNamespace extends UserShareBaseModel {
// This class extends the user share model with a 'rights' parameter which is used in sharing
export default class UserNamespaceModel extends UserShareBaseModel implements IUserNamespace {
declare namespaceId: INamespace['id']
namespaceId!: INamespace['id']
defaults() {
return {

View File

@ -14,14 +14,14 @@ export interface IUserSettings extends AbstractModel {
}
export default class UserSettingsModel extends AbstractModel implements IUserSettings {
declare name: string
declare emailRemindersEnabled: boolean
declare discoverableByName: boolean
declare discoverableByEmail: boolean
declare overdueTasksRemindersEnabled: boolean
declare defaultListId: undefined | IList['id']
declare weekStart: 0 | 1 | 2 | 3 | 4 | 5 | 6
declare timezone: string
name!: string
emailRemindersEnabled!: boolean
discoverableByName!: boolean
discoverableByEmail!: boolean
overdueTasksRemindersEnabled!: boolean
defaultListId!: undefined | IList['id']
weekStart!: 0 | 1 | 2 | 3 | 4 | 5 | 6
timezone!: string
defaults() {
return {

View File

@ -11,8 +11,8 @@ export interface IUserShareBase extends AbstractModel {
}
export default class UserShareBaseModel extends AbstractModel implements IUserShareBase {
declare userId: IUser['id']
declare right: Right
userId!: IUser['id']
right!: Right
created: Date
updated: Date