Skip to content

Commit 7d68552

Browse files
authored
Merge pull request #262 from BuildFire/item-unable-to-delete
fix /Item unable to delete
2 parents 03e68a6 + 992b820 commit 7d68552

File tree

3 files changed

+92
-65
lines changed

3 files changed

+92
-65
lines changed

control/content/controllers/mediaHomeController.js

Lines changed: 63 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -246,20 +246,27 @@
246246
(err, isConfirmed) => {
247247
if (isConfirmed) {
248248
$scope.isBusy = true;
249-
Deeplink.deleteById(item.id, (err, res) => {
250-
if (err) {
249+
SearchEngineService.delete(item.id, (err, result)=>{
250+
if (err){
251251
$scope.isBusy = false;
252252
return console.error(err);
253253
}
254-
255-
MediaContent.delete(item.id).then(() => {
256-
$scope.isBusy = false;
257-
$scope.items = $scope.items.filter((_item) => _item.id !== item.id);
258-
$scope.buildList();
259-
}).catch((err) => {
260-
$scope.isBusy = false;
261-
return console.error(err);
254+
Deeplink.deleteById(item.id, (err, res) => {
255+
if (err) {
256+
$scope.isBusy = false;
257+
return console.error(err);
258+
}
259+
260+
MediaContent.delete(item.id).then(() => {
261+
$scope.isBusy = false;
262+
$scope.items = $scope.items.filter((_item) => _item.id !== item.id);
263+
$scope.buildList();
264+
}).catch((err) => {
265+
$scope.isBusy = false;
266+
return console.error(err);
267+
});
262268
});
269+
263270
});
264271
}
265272
}
@@ -444,7 +451,7 @@
444451

445452
const searchOptions = {
446453
filter: { '$json._buildfire.index.date1': { $gte: date } },
447-
limit: 50, skip: 0, recordCount: true
454+
limit: 50, skip: 0, recordCount: true, sort:{dateCreated: 1, rank: -1}
448455
};
449456
getRecords(searchOptions, [], function (records) {
450457
$scope.registerAnalyticsEvent(records);
@@ -516,48 +523,54 @@
516523

517524
if (!$rootScope.loading)
518525
return;
519-
520-
// var rank = ContentHome.info.data.content.rankOfLastItem || 0;
521-
let rank = 0;
522-
for (var index = 0; index < rows.length; index++) {
523-
rank += 10;
524-
rows[index].dateCreated = new Date().getTime();
525-
rows[index].links = [];
526-
rows[index].rank = rank;
527-
rows[index].body = rows[index].bodyHTML;
528-
rows[index].titleIndex = rows[index].title ? rows[index].titleIndex = rows[index].title.toLowerCase() : '';
529-
//MEDIA DATE INDEX
530-
var setMediaDateIndex = new Date().getTime();
531-
if (rows[index].mediaDateIndex) {
532-
setMediaDateIndex = rows[index].mediaDateIndex;
533-
} else if (rows[index].mediaDate) {
534-
setMediaDateIndex = new Date(rows[index].mediaDate).getTime();
535-
} else if (rows[index].dateCreated) {
536-
setMediaDateIndex = new Date(rows[index].dateCreated).getTime();
526+
MediaContent.find({sort:{rank: -1}, limit:1, skip: 0}).then(function (res) {
527+
const result = res.result;
528+
// var rank = ContentHome.info.data.content.rankOfLastItem || 0;
529+
let rank = 0;
530+
if (result && result.length) {
531+
rank = result[0].rank;
537532
}
538-
rows[index].mediaDateIndex = setMediaDateIndex;
539-
rows[index]._buildfire = {
540-
index: {
541-
date1: new Date(),
533+
for (var index = 0; index < rows.length; index++) {
534+
rank += 10;
535+
rows[index].dateCreated = new Date().getTime();
536+
rows[index].links = [];
537+
rows[index].rank = rank;
538+
rows[index].body = rows[index].bodyHTML;
539+
rows[index].titleIndex = rows[index].title ? rows[index].titleIndex = rows[index].title.toLowerCase() : '';
540+
//MEDIA DATE INDEX
541+
var setMediaDateIndex = new Date().getTime();
542+
if (rows[index].mediaDateIndex) {
543+
setMediaDateIndex = rows[index].mediaDateIndex;
544+
} else if (rows[index].mediaDate) {
545+
setMediaDateIndex = new Date(rows[index].mediaDate).getTime();
546+
} else if (rows[index].dateCreated) {
547+
setMediaDateIndex = new Date(rows[index].dateCreated).getTime();
542548
}
543-
};
544-
}
545-
if (validateCsv(rows)) {
546-
MediaContent.insert(rows).then(function (data) {
547-
$rootScope.loading = false;
548-
$scope.isBusy = false;
549-
$scope.items = [];
550-
$scope.searchListItem();
551-
$scope.setDeeplinks();
552-
}, function errorHandler(error) {
553-
console.error(error);
549+
rows[index].mediaDateIndex = setMediaDateIndex;
550+
rows[index]._buildfire = {
551+
index: {
552+
date1: new Date(),
553+
}
554+
};
555+
}
556+
if (validateCsv(rows)) {
557+
MediaContent.insert(rows).then(function (data) {
558+
$rootScope.loading = false;
559+
$scope.isBusy = false;
560+
$scope.items = [];
561+
$scope.searchListItem();
562+
$scope.setDeeplinks();
563+
}, function errorHandler(error) {
564+
console.error(error);
565+
$rootScope.loading = false;
566+
$scope.$apply();
567+
});
568+
} else {
554569
$rootScope.loading = false;
555-
$scope.$apply();
556-
});
557-
} else {
558-
$rootScope.loading = false;
559-
$csv.showInvalidCSV();
560-
}
570+
$csv.showInvalidCSV();
571+
}
572+
})
573+
561574
} else {
562575
$rootScope.loading = false;
563576
$csv.showInvalidCSV();

control/content/services.js

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -204,24 +204,34 @@
204204
return deferred.promise;
205205
};
206206

207-
SearchEngine.prototype.delete = function (id) {
207+
SearchEngine.prototype.delete = function (key, callback) {
208208
var that = this;
209209
var deferred = $q.defer();
210-
if (typeof id == 'undefined') {
211-
return deferred.reject(new Error(MESSAGES.ERROR.ID_NOT_DEFINED));
210+
211+
if (typeof key === 'undefined') {
212+
var error = new Error(MESSAGES.ERROR.ID_NOT_DEFINED);
213+
deferred.reject(error);
214+
callback(error, null);
215+
return deferred.promise;
212216
}
213217
var data = {
214-
id: id,
218+
key,
215219
tag: that._tagName
216-
}
220+
};
221+
217222
Buildfire.services.searchEngine.delete(data, function (err, result) {
218223
if (err) {
219-
return deferred.reject(err);
220-
}
221-
else if (result) {
222-
return deferred.resolve(result);
223-
} else {
224-
return deferred.reject(new Error(MESSAGES.ERROR.NOT_FOUND));
224+
if (err.errorMessage && err.errorMessage === 'Not Found'){
225+
deferred.resolve(true);
226+
callback(null, true);
227+
}
228+
else {
229+
deferred.reject(err);
230+
callback(err, null);
231+
}
232+
} else if (result) {
233+
deferred.resolve(result);
234+
callback(null, result);
225235
}
226236
});
227237
return deferred.promise;

widget/js/shared/Deeplink.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,14 @@ class Deeplink {
1717
deeplinkData: this.deeplinkData,
1818
imageUrl: this.imageUrl
1919
};
20-
2120
buildfire.deeplink.registerDeeplink(options, (err, result) => {
2221

2322
if (err || !result) {
2423
console.error(err, '<<< ERROR WHILE REGISTERING DEEP LINK.');
2524
return callback(err);
2625
}
2726

28-
callback(null, {
27+
callback(null, {
2928
deeplinkId: result && result.data && result.data.deeplinkId ? result.data.deeplinkId : null,
3029
deeplinkData: new Deeplink(result && result.data ? result.data : null)
3130
});
@@ -74,13 +73,18 @@ class Deeplink {
7473

7574
if (err) {
7675
console.error(err, '<<< ERROR WHILE DELETING DEEP LINK.');
76+
if (err === 'no result found for this deeplink id'){
77+
// Some items may not have a deeplink ID, which can result in this specific error.
78+
// In such cases, we can safely ignore the error and proceed without it.
79+
return callback(null)
80+
}
7781
return callback(err);
7882
}
7983

8084
callback(null);
81-
85+
8286
});
8387

8488
}
8589

86-
}
90+
}

0 commit comments

Comments
 (0)