mirror of
https://github.com/hargata/lubelog.git
synced 2025-12-12 00:03:10 -06:00
Merge pull request #587 from hargata/Hargata/api.enhancement
Further Enhance Cleanup API Endpoint.
This commit is contained in:
commit
78554ade5d
@ -21,6 +21,9 @@ namespace CarCareTracker.Controllers
|
|||||||
private readonly IReminderRecordDataAccess _reminderRecordDataAccess;
|
private readonly IReminderRecordDataAccess _reminderRecordDataAccess;
|
||||||
private readonly IUpgradeRecordDataAccess _upgradeRecordDataAccess;
|
private readonly IUpgradeRecordDataAccess _upgradeRecordDataAccess;
|
||||||
private readonly IOdometerRecordDataAccess _odometerRecordDataAccess;
|
private readonly IOdometerRecordDataAccess _odometerRecordDataAccess;
|
||||||
|
private readonly ISupplyRecordDataAccess _supplyRecordDataAccess;
|
||||||
|
private readonly IPlanRecordDataAccess _planRecordDataAccess;
|
||||||
|
private readonly IPlanRecordTemplateDataAccess _planRecordTemplateDataAccess;
|
||||||
private readonly IUserAccessDataAccess _userAccessDataAccess;
|
private readonly IUserAccessDataAccess _userAccessDataAccess;
|
||||||
private readonly IUserRecordDataAccess _userRecordDataAccess;
|
private readonly IUserRecordDataAccess _userRecordDataAccess;
|
||||||
private readonly IReminderHelper _reminderHelper;
|
private readonly IReminderHelper _reminderHelper;
|
||||||
@ -42,6 +45,9 @@ namespace CarCareTracker.Controllers
|
|||||||
IReminderRecordDataAccess reminderRecordDataAccess,
|
IReminderRecordDataAccess reminderRecordDataAccess,
|
||||||
IUpgradeRecordDataAccess upgradeRecordDataAccess,
|
IUpgradeRecordDataAccess upgradeRecordDataAccess,
|
||||||
IOdometerRecordDataAccess odometerRecordDataAccess,
|
IOdometerRecordDataAccess odometerRecordDataAccess,
|
||||||
|
ISupplyRecordDataAccess supplyRecordDataAccess,
|
||||||
|
IPlanRecordDataAccess planRecordDataAccess,
|
||||||
|
IPlanRecordTemplateDataAccess planRecordTemplateDataAccess,
|
||||||
IUserAccessDataAccess userAccessDataAccess,
|
IUserAccessDataAccess userAccessDataAccess,
|
||||||
IUserRecordDataAccess userRecordDataAccess,
|
IUserRecordDataAccess userRecordDataAccess,
|
||||||
IMailHelper mailHelper,
|
IMailHelper mailHelper,
|
||||||
@ -60,6 +66,9 @@ namespace CarCareTracker.Controllers
|
|||||||
_reminderRecordDataAccess = reminderRecordDataAccess;
|
_reminderRecordDataAccess = reminderRecordDataAccess;
|
||||||
_upgradeRecordDataAccess = upgradeRecordDataAccess;
|
_upgradeRecordDataAccess = upgradeRecordDataAccess;
|
||||||
_odometerRecordDataAccess = odometerRecordDataAccess;
|
_odometerRecordDataAccess = odometerRecordDataAccess;
|
||||||
|
_supplyRecordDataAccess = supplyRecordDataAccess;
|
||||||
|
_planRecordDataAccess = planRecordDataAccess;
|
||||||
|
_planRecordTemplateDataAccess = planRecordTemplateDataAccess;
|
||||||
_userAccessDataAccess = userAccessDataAccess;
|
_userAccessDataAccess = userAccessDataAccess;
|
||||||
_userRecordDataAccess = userRecordDataAccess;
|
_userRecordDataAccess = userRecordDataAccess;
|
||||||
_mailHelper = mailHelper;
|
_mailHelper = mailHelper;
|
||||||
@ -579,6 +588,27 @@ namespace CarCareTracker.Controllers
|
|||||||
var thumbnailsDeleted = _fileHelper.ClearUnlinkedThumbnails(vehicleImages);
|
var thumbnailsDeleted = _fileHelper.ClearUnlinkedThumbnails(vehicleImages);
|
||||||
jsonResponse.Add("unlinked_thumbnails_deleted", thumbnailsDeleted.ToString());
|
jsonResponse.Add("unlinked_thumbnails_deleted", thumbnailsDeleted.ToString());
|
||||||
}
|
}
|
||||||
|
var vehicleDocuments = new List<string>();
|
||||||
|
foreach(Vehicle vehicle in vehicles)
|
||||||
|
{
|
||||||
|
vehicleDocuments.AddRange(_serviceRecordDataAccess.GetServiceRecordsByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y=>Path.GetFileName(y.Location)));
|
||||||
|
vehicleDocuments.AddRange(_collisionRecordDataAccess.GetCollisionRecordsByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location)));
|
||||||
|
vehicleDocuments.AddRange(_upgradeRecordDataAccess.GetUpgradeRecordsByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location)));
|
||||||
|
vehicleDocuments.AddRange(_taxRecordDataAccess.GetTaxRecordsByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location)));
|
||||||
|
vehicleDocuments.AddRange(_gasRecordDataAccess.GetGasRecordsByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location)));
|
||||||
|
vehicleDocuments.AddRange(_noteDataAccess.GetNotesByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location)));
|
||||||
|
vehicleDocuments.AddRange(_odometerRecordDataAccess.GetOdometerRecordsByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location)));
|
||||||
|
vehicleDocuments.AddRange(_supplyRecordDataAccess.GetSupplyRecordsByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location)));
|
||||||
|
vehicleDocuments.AddRange(_planRecordDataAccess.GetPlanRecordsByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location)));
|
||||||
|
vehicleDocuments.AddRange(_planRecordTemplateDataAccess.GetPlanRecordTemplatesByVehicleId(vehicle.Id).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location)));
|
||||||
|
}
|
||||||
|
//shop supplies
|
||||||
|
vehicleDocuments.AddRange(_supplyRecordDataAccess.GetSupplyRecordsByVehicleId(0).SelectMany(x => x.Files).Select(y => Path.GetFileName(y.Location)));
|
||||||
|
if (vehicleDocuments.Any())
|
||||||
|
{
|
||||||
|
var documentsDeleted = _fileHelper.ClearUnlinkedDocuments(vehicleDocuments);
|
||||||
|
jsonResponse.Add("unlinked_documents_deleted", documentsDeleted.ToString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return Json(jsonResponse);
|
return Json(jsonResponse);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,6 +15,7 @@ namespace CarCareTracker.Helper
|
|||||||
List<string> GetLanguages();
|
List<string> GetLanguages();
|
||||||
int ClearTempFolder();
|
int ClearTempFolder();
|
||||||
int ClearUnlinkedThumbnails(List<string> linkedImages);
|
int ClearUnlinkedThumbnails(List<string> linkedImages);
|
||||||
|
int ClearUnlinkedDocuments(List<string> linkedDocuments);
|
||||||
}
|
}
|
||||||
public class FileHelper : IFileHelper
|
public class FileHelper : IFileHelper
|
||||||
{
|
{
|
||||||
@ -349,5 +350,23 @@ namespace CarCareTracker.Helper
|
|||||||
}
|
}
|
||||||
return filesDeleted;
|
return filesDeleted;
|
||||||
}
|
}
|
||||||
|
public int ClearUnlinkedDocuments(List<string> linkedDocuments)
|
||||||
|
{
|
||||||
|
int filesDeleted = 0;
|
||||||
|
var documentPath = GetFullFilePath("documents", false);
|
||||||
|
if (Directory.Exists(documentPath))
|
||||||
|
{
|
||||||
|
var files = Directory.GetFiles(documentPath);
|
||||||
|
foreach (var file in files)
|
||||||
|
{
|
||||||
|
if (!linkedDocuments.Contains(Path.GetFileName(file)))
|
||||||
|
{
|
||||||
|
File.Delete(file);
|
||||||
|
filesDeleted++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return filesDeleted;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,6 +40,55 @@
|
|||||||
No Params
|
No Params
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-1">
|
||||||
|
GET
|
||||||
|
</div>
|
||||||
|
<div class="col-5 copyable">
|
||||||
|
<code>/api/vehicle/odometerrecords</code>
|
||||||
|
</div>
|
||||||
|
<div class="col-3">
|
||||||
|
Returns a list of odometer records for the vehicle
|
||||||
|
</div>
|
||||||
|
<div class="col-3">
|
||||||
|
vehicleId - Id of Vehicle
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-1">
|
||||||
|
GET
|
||||||
|
</div>
|
||||||
|
<div class="col-5 copyable">
|
||||||
|
<code>/api/vehicle/odometerrecords/latest</code>
|
||||||
|
</div>
|
||||||
|
<div class="col-3">
|
||||||
|
Returns last reported odometer for the vehicle
|
||||||
|
</div>
|
||||||
|
<div class="col-3">
|
||||||
|
vehicleId - Id of Vehicle
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-1">
|
||||||
|
POST
|
||||||
|
</div>
|
||||||
|
<div class="col-5 copyable">
|
||||||
|
<code>/api/vehicle/odometerrecords/add</code>
|
||||||
|
</div>
|
||||||
|
<div class="col-3">
|
||||||
|
Adds Odometer Record to the vehicle
|
||||||
|
</div>
|
||||||
|
<div class="col-3">
|
||||||
|
vehicleId - Id of Vehicle
|
||||||
|
<br />
|
||||||
|
Body(form-data): {<br />
|
||||||
|
date - Date to be entered<br />
|
||||||
|
initialOdometer - Initial Odometer reading(optional)<br />
|
||||||
|
odometer - Odometer reading<br />
|
||||||
|
notes - notes(optional)<br />
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-1">
|
<div class="col-1">
|
||||||
GET
|
GET
|
||||||
@ -270,56 +319,22 @@
|
|||||||
No Params(must be root user)
|
No Params(must be root user)
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-1">
|
||||||
|
GET
|
||||||
|
</div>
|
||||||
|
<div class="col-5 copyable">
|
||||||
|
<code>/api/cleanup</code>
|
||||||
|
</div>
|
||||||
|
<div class="col-3">
|
||||||
|
Clears out temp files. Deep clean will also delete unlinked thumbnails and documents. Returns number of deleted files.
|
||||||
|
</div>
|
||||||
|
<div class="col-3">
|
||||||
|
(must be root user)<br />
|
||||||
|
deepClean(bool) - Perform deep clean
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
}
|
}
|
||||||
<div class="row">
|
|
||||||
<div class="col-1">
|
|
||||||
GET
|
|
||||||
</div>
|
|
||||||
<div class="col-5 copyable">
|
|
||||||
<code>/api/vehicle/odometerrecords</code>
|
|
||||||
</div>
|
|
||||||
<div class="col-3">
|
|
||||||
Returns a list of odometer records for the vehicle
|
|
||||||
</div>
|
|
||||||
<div class="col-3">
|
|
||||||
vehicleId - Id of Vehicle
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-1">
|
|
||||||
GET
|
|
||||||
</div>
|
|
||||||
<div class="col-5 copyable">
|
|
||||||
<code>/api/vehicle/odometerrecords/latest</code>
|
|
||||||
</div>
|
|
||||||
<div class="col-3">
|
|
||||||
Returns last reported odometer for the vehicle
|
|
||||||
</div>
|
|
||||||
<div class="col-3">
|
|
||||||
vehicleId - Id of Vehicle
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-1">
|
|
||||||
POST
|
|
||||||
</div>
|
|
||||||
<div class="col-5 copyable">
|
|
||||||
<code>/api/vehicle/odometerrecords/add</code>
|
|
||||||
</div>
|
|
||||||
<div class="col-3">
|
|
||||||
Adds Odometer Record to the vehicle
|
|
||||||
</div>
|
|
||||||
<div class="col-3">
|
|
||||||
vehicleId - Id of Vehicle
|
|
||||||
<br />
|
|
||||||
Body(form-data): {<br />
|
|
||||||
date - Date to be entered<br />
|
|
||||||
initialOdometer - Initial Odometer reading(optional)<br />
|
|
||||||
odometer - Odometer reading<br />
|
|
||||||
notes - notes(optional)<br />
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<script>
|
<script>
|
||||||
$('.copyable').on('click', function (e) {
|
$('.copyable').on('click', function (e) {
|
||||||
copyToClipboard(e.currentTarget);
|
copyToClipboard(e.currentTarget);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user