use of net.osmand.server.controllers.pub.UserdataController.UserFilesResults in project OsmAnd-tools by osmandapp.
the class MapApiController method listFiles.
@GetMapping(value = "/list-files")
@ResponseBody
public ResponseEntity<String> listFiles(@RequestParam(name = "name", required = false) String name, @RequestParam(name = "type", required = false) String type, @RequestParam(name = "allVersions", required = false, defaultValue = "false") boolean allVersions) throws IOException, SQLException {
PremiumUserDevice dev = checkUser();
if (dev == null) {
return tokenNotValid();
}
UserFilesResults res = userdataController.generateFiles(dev.userid, name, type, allVersions, true);
for (UserFileNoData nd : res.uniqueFiles) {
String ext = nd.name.substring(nd.name.lastIndexOf('.') + 1);
if (nd.type.equalsIgnoreCase("gpx") && ext.equalsIgnoreCase("gpx") && !analysisPresent(ANALYSIS, nd.details)) {
GPXTrackAnalysis analysis = null;
Optional<UserFile> of = userFilesRepository.findById(nd.id);
UserFile uf = of.get();
if (uf != null) {
try {
InputStream in = uf.data != null ? new ByteArrayInputStream(uf.data) : userdataController.getInputStream(uf);
if (in != null) {
GPXFile gpxFile = GPXUtilities.loadGPXFile(new GZIPInputStream(in));
if (gpxFile != null) {
analysis = getAnalysis(uf, gpxFile);
}
}
} catch (RuntimeException e) {
}
saveAnalysis(ANALYSIS, uf, analysis);
nd.details = uf.details.deepCopy();
}
}
if (analysisPresent(ANALYSIS, nd.details)) {
nd.details.get(ANALYSIS).getAsJsonObject().remove("speedData");
nd.details.get(ANALYSIS).getAsJsonObject().remove("elevationData");
}
if (analysisPresent(SRTM_ANALYSIS, nd.details)) {
nd.details.get(SRTM_ANALYSIS).getAsJsonObject().remove("speedData");
nd.details.get(SRTM_ANALYSIS).getAsJsonObject().remove("elevationData");
}
}
return ResponseEntity.ok(gson.toJson(res));
}
use of net.osmand.server.controllers.pub.UserdataController.UserFilesResults in project OsmAnd-tools by osmandapp.
the class AdminController method searchSubscription.
@PostMapping(path = { "/search-subscription" })
public String searchSubscription(Model model, @RequestParam(required = true) String orderId, final RedirectAttributes redirectAttrs) throws JsonProcessingException {
SupporterDeviceSubscription deviceSub = new SupporterDeviceSubscription();
deviceSub.sku = "not found";
deviceSub.orderId = "none";
deviceSub.valid = false;
if (emailSender.isEmail(orderId)) {
PremiumUser pu = usersRepository.findByEmail(orderId);
if (pu != null) {
deviceSub.sku = orderId + " (pro email)";
List<SupporterDeviceSubscription> ls = subscriptionsRepository.findByOrderId(pu.orderid);
if (ls != null && ls.size() > 0) {
deviceSub = ls.get(0);
}
if (deviceSub != null) {
UserFilesResults ufs = userDataController.generateFiles(pu.id, null, null, true, false);
ufs.allFiles.clear();
ufs.uniqueFiles.clear();
deviceSub.payload = gson.toJson(ufs);
}
}
} else {
List<SupporterDeviceSubscription> ls = subscriptionsRepository.findByOrderId(orderId);
if (ls != null && ls.size() > 0) {
deviceSub = ls.get(0);
}
}
redirectAttrs.addFlashAttribute("subscriptions", Collections.singleton(deviceSub));
return "redirect:info#audience";
}
Aggregations