diff options
Diffstat (limited to 'src/models/Service.js')
-rw-r--r-- | src/models/Service.js | 49 |
1 files changed, 17 insertions, 32 deletions
diff --git a/src/models/Service.js b/src/models/Service.js index 4b78b9a40..dbbd622aa 100644 --- a/src/models/Service.js +++ b/src/models/Service.js | |||
@@ -8,6 +8,7 @@ import { todosStore } from '../features/todos'; | |||
8 | import { isValidExternalURL } from '../helpers/url-helpers'; | 8 | import { isValidExternalURL } from '../helpers/url-helpers'; |
9 | import UserAgent from './UserAgent'; | 9 | import UserAgent from './UserAgent'; |
10 | import { DEFAULT_SERVICE_ORDER } from '../config'; | 10 | import { DEFAULT_SERVICE_ORDER } from '../config'; |
11 | import { ifUndefinedString, ifUndefinedBoolean, ifUndefinedNumber } from '../jsUtils'; | ||
11 | 12 | ||
12 | const debug = require('debug')('Ferdi:Service'); | 13 | const debug = require('debug')('Ferdi:Service'); |
13 | 14 | ||
@@ -101,8 +102,11 @@ export default class Service { | |||
101 | throw Error('Service recipe not valid'); | 102 | throw Error('Service recipe not valid'); |
102 | } | 103 | } |
103 | 104 | ||
105 | this.recipe = recipe; | ||
106 | |||
104 | this.userAgentModel = new UserAgent(recipe.overrideUserAgent); | 107 | this.userAgentModel = new UserAgent(recipe.overrideUserAgent); |
105 | 108 | ||
109 | // TODO: Should these also follow the 'ifUndefined*' style? | ||
106 | this.id = data.id || this.id; | 110 | this.id = data.id || this.id; |
107 | this.name = data.name || this.name; | 111 | this.name = data.name || this.name; |
108 | this.team = data.team || this.team; | 112 | this.team = data.team || this.team; |
@@ -110,38 +114,19 @@ export default class Service { | |||
110 | // this.customIconUrl = data.customIconUrl || this.customIconUrl; | 114 | // this.customIconUrl = data.customIconUrl || this.customIconUrl; |
111 | this.iconUrl = data.iconUrl || this.iconUrl; | 115 | this.iconUrl = data.iconUrl || this.iconUrl; |
112 | 116 | ||
113 | this.order = data.order !== undefined | 117 | this.order = ifUndefinedNumber(data.order, this.order); |
114 | ? data.order : this.order; | 118 | this.isEnabled = ifUndefinedBoolean(data.isEnabled, this.isEnabled); |
115 | 119 | this.isNotificationEnabled = ifUndefinedBoolean(data.isNotificationEnabled, this.isNotificationEnabled); | |
116 | this.isEnabled = data.isEnabled !== undefined | 120 | this.isBadgeEnabled = ifUndefinedBoolean(data.isBadgeEnabled, this.isBadgeEnabled); |
117 | ? data.isEnabled : this.isEnabled; | 121 | this.isIndirectMessageBadgeEnabled = ifUndefinedBoolean(data.isIndirectMessageBadgeEnabled, this.isIndirectMessageBadgeEnabled); |
118 | 122 | this.isMuted = ifUndefinedBoolean(data.isMuted, this.isMuted); | |
119 | this.isNotificationEnabled = data.isNotificationEnabled !== undefined | 123 | this.isDarkModeEnabled = ifUndefinedBoolean(data.isDarkModeEnabled, this.isDarkModeEnabled); |
120 | ? data.isNotificationEnabled : this.isNotificationEnabled; | 124 | this.darkReaderSettings = ifUndefinedString(data.darkReaderSettings, this.darkReaderSettings); |
121 | 125 | this.hasCustomUploadedIcon = ifUndefinedBoolean(data.hasCustomIcon, this.hasCustomUploadedIcon); | |
122 | this.isBadgeEnabled = data.isBadgeEnabled !== undefined | 126 | this.proxy = ifUndefinedString(data.proxy, this.proxy); |
123 | ? data.isBadgeEnabled : this.isBadgeEnabled; | 127 | this.spellcheckerLanguage = ifUndefinedString(data.spellcheckerLanguage, this.spellcheckerLanguage); |
124 | 128 | this.userAgentPref = ifUndefinedString(data.userAgentPref, this.userAgentPref); | |
125 | this.isIndirectMessageBadgeEnabled = data.isIndirectMessageBadgeEnabled !== undefined | 129 | this.isHibernationEnabled = ifUndefinedBoolean(data.isHibernationEnabled, this.isHibernationEnabled); |
126 | ? data.isIndirectMessageBadgeEnabled : this.isIndirectMessageBadgeEnabled; | ||
127 | |||
128 | this.isMuted = data.isMuted !== undefined ? data.isMuted : this.isMuted; | ||
129 | |||
130 | this.isDarkModeEnabled = data.isDarkModeEnabled !== undefined ? data.isDarkModeEnabled : this.isDarkModeEnabled; | ||
131 | |||
132 | this.darkReaderSettings = data.darkReaderSettings !== undefined ? data.darkReaderSettings : this.darkReaderSettings; | ||
133 | |||
134 | this.hasCustomUploadedIcon = data.hasCustomIcon !== undefined ? data.hasCustomIcon : this.hasCustomUploadedIcon; | ||
135 | |||
136 | this.proxy = data.proxy !== undefined ? data.proxy : this.proxy; | ||
137 | |||
138 | this.spellcheckerLanguage = data.spellcheckerLanguage !== undefined ? data.spellcheckerLanguage : this.spellcheckerLanguage; | ||
139 | |||
140 | this.userAgentPref = data.userAgentPref !== undefined ? data.userAgentPref : this.userAgentPref; | ||
141 | |||
142 | this.isHibernationEnabled = data.isHibernationEnabled !== undefined ? data.isHibernationEnabled : this.isHibernationEnabled; | ||
143 | |||
144 | this.recipe = recipe; | ||
145 | 130 | ||
146 | // Check if "Hibernate on Startup" is enabled and hibernate all services except active one | 131 | // Check if "Hibernate on Startup" is enabled and hibernate all services except active one |
147 | const { hibernateOnStartup } = window.ferdi.stores.settings.app; | 132 | const { hibernateOnStartup } = window.ferdi.stores.settings.app; |