@@ -129,49 +129,34 @@ class CompetenceManager {
129129 //- the CompetenceFilterManager is not registered in the di yet
130130
131131 Future <void > firstFetchCompetences () async {
132- final List <Competence > competences = await _competenceApiService
133- .getAllCompetences ();
134- if (competences.isNotEmpty) {
132+ final competences = await _competenceApiService.getAllCompetences ();
133+ if (competences != null && competences.isNotEmpty) {
135134 _competences.value = competences;
136-
137135 _envManager.setPopulatedEnvServerData (competences: true );
138-
139136 _rootCompetencesMap.clear ();
140-
141- _rootCompetencesMap = CompetenceHelper .generateRootCompetencesMap (
142- competences,
137+ _rootCompetencesMap =
138+ CompetenceHelper .generateRootCompetencesMap (competences);
139+ _notificationService.showSnackBar (
140+ NotificationType .success,
141+ 'Kompetenzen aktualisiert!' ,
143142 );
144143 }
145-
146- _notificationService.showSnackBar (
147- NotificationType .success,
148- 'Kompetenzen aktualisiert!' ,
149- );
150-
151- return ;
152144 }
153145
154146 Future <void > fetchCompetences () async {
155- final List <Competence > competences = await _competenceApiService
156- .getAllCompetences ();
157-
158- final sortedCompetences = CompetenceHelper .sortCompetences (competences);
159- _competences.value = sortedCompetences;
160-
161- _rootCompetencesMap.clear ();
162-
163- _rootCompetencesMap = CompetenceHelper .generateRootCompetencesMap (
164- competences,
165- );
166-
167- di <CompetenceFilterManager >().refreshFilteredCompetences (competences);
168-
169- _notificationService.showSnackBar (
170- NotificationType .success,
171- 'Kompetenzen aktualisiert!' ,
172- );
173-
174- return ;
147+ final competences = await _competenceApiService.getAllCompetences ();
148+ if (competences != null ) {
149+ final sortedCompetences = CompetenceHelper .sortCompetences (competences);
150+ _competences.value = sortedCompetences;
151+ _rootCompetencesMap.clear ();
152+ _rootCompetencesMap =
153+ CompetenceHelper .generateRootCompetencesMap (competences);
154+ di <CompetenceFilterManager >().refreshFilteredCompetences (competences);
155+ _notificationService.showSnackBar (
156+ NotificationType .success,
157+ 'Kompetenzen aktualisiert!' ,
158+ );
159+ }
175160 }
176161
177162 Future <void > postNewCompetence ({
@@ -186,8 +171,9 @@ class CompetenceManager {
186171 level: competenceLevel,
187172 indicators: indicators,
188173 );
189-
190- upsertFromStream (newCompetence);
174+ if (newCompetence != null ) {
175+ upsertFromStream (newCompetence);
176+ }
191177 //- The competence is coming back from the stream, we don't need to do this
192178 // _competences.value = CompetenceHelper.sortCompetences([
193179 // ..._competences.value,
@@ -216,27 +202,23 @@ class CompetenceManager {
216202 );
217203 return ;
218204 }
219- final List < Competence > importedCompetences = await _competenceApiService
205+ final importedCompetences = await _competenceApiService
220206 .importCompetencesFromJsonFile (fileResponse.path! );
221-
222- final sortedCompetences = CompetenceHelper .sortCompetences (
223- importedCompetences,
224- );
225- _competences.value = sortedCompetences;
226-
227- _rootCompetencesMap.clear ();
228-
229- _rootCompetencesMap = CompetenceHelper .generateRootCompetencesMap (
230- sortedCompetences,
231- );
232-
233- di <CompetenceFilterManager >().refreshFilteredCompetences (sortedCompetences);
234- _envManager.setPopulatedEnvServerData (competences: true );
235-
236- _notificationService.showSnackBar (
237- NotificationType .success,
238- 'Kompetenzen importiert' ,
239- );
207+ if (importedCompetences != null ) {
208+ final sortedCompetences =
209+ CompetenceHelper .sortCompetences (importedCompetences);
210+ _competences.value = sortedCompetences;
211+ _rootCompetencesMap.clear ();
212+ _rootCompetencesMap =
213+ CompetenceHelper .generateRootCompetencesMap (sortedCompetences);
214+ di <CompetenceFilterManager >()
215+ .refreshFilteredCompetences (sortedCompetences);
216+ _envManager.setPopulatedEnvServerData (competences: true );
217+ _notificationService.showSnackBar (
218+ NotificationType .success,
219+ 'Kompetenzen importiert' ,
220+ );
221+ }
240222 }
241223
242224 Future <void > updateCompetenceOrder ({
@@ -251,11 +233,9 @@ class CompetenceManager {
251233 final verifiedUpdated = await _competenceApiService.updateCompetence (
252234 updatedCompetence,
253235 );
254- // Update in-place without notifying listeners.
255- // The sortable widgets manage their own visual order via local state.
256- // Call sortAndNotifyCompetences() when done (e.g. on page dispose)
257- // to commit the sorted order for other widgets.
258- _competences.value[index] = verifiedUpdated;
236+ if (verifiedUpdated != null ) {
237+ _competences.value[index] = verifiedUpdated;
238+ }
259239 }
260240
261241 /// Sorts the competences list by order and notifies listeners.
@@ -298,22 +278,14 @@ class CompetenceManager {
298278 );
299279 final verifiedUpdatedCompetence = await _competenceApiService
300280 .updateCompetence (updatedCompetence);
301-
281+ if (verifiedUpdatedCompetence == null ) {
282+ return ;
283+ }
302284 final List <Competence > competences = List .from (_competences.value);
303-
304285 competences[competenceListIndex] = verifiedUpdatedCompetence;
305-
306286 _competences.value = competences;
307-
308- di <CompetenceFilterManager >().refreshFilteredCompetences (
309- _competences.value,
310- );
311-
312- _notificationService.showSnackBar (
313- NotificationType .success,
314- 'Kompetenz aktualisiert' ,
315- );
316-
287+ di <CompetenceFilterManager >()
288+ .refreshFilteredCompetences (_competences.value);
317289 return ;
318290 }
319291
@@ -325,24 +297,19 @@ class CompetenceManager {
325297 );
326298 return ;
327299 }
328- final bool success = await _competenceApiService.deleteCompetence (publicId);
300+ final success = await _competenceApiService.deleteCompetence (publicId);
329301
330- if (success) {
302+ if (success == true ) {
331303 final List <Competence > competences = List .from (_competences.value);
332-
333304 competences.removeWhere ((element) => element.publicId == publicId);
334-
335305 _competences.value = competences;
336-
337- di <CompetenceFilterManager >().refreshFilteredCompetences (
338- _competences.value,
339- );
340-
306+ di <CompetenceFilterManager >()
307+ .refreshFilteredCompetences (_competences.value);
341308 _notificationService.showSnackBar (
342309 NotificationType .success,
343310 'Kompetenz gelöscht' ,
344311 );
345- } else {
312+ } else if (success == false ) {
346313 _notificationService.showSnackBar (
347314 NotificationType .error,
348315 'Fehler beim Löschen der Kompetenz' ,
0 commit comments