use of com.pratilipi.api.annotation.Get in project pratilipi by Pratilipi.
the class PageApi method get.
@Get
public Response get(GetRequest request) throws InvalidArgumentException, UnexpectedServerException {
DataAccessor dataAccessor = DataAccessorFactory.getDataAccessor();
if (request.uri.startsWith("/read?id=")) {
// TODO: Remove this as soon as READ uri(s) are added to Page table.
String pratilipiId = request.uri.substring("/read?id=".length());
if (pratilipiId.indexOf('&') != -1)
pratilipiId = pratilipiId.substring(0, pratilipiId.indexOf('&'));
return new Response(PageType.READ, Long.parseLong(pratilipiId));
}
Page page = dataAccessor.getPage(request.uri);
if (page == null && request.uri.contains("?"))
page = dataAccessor.getPage(request.uri.substring(0, request.uri.indexOf("?")));
if (page != null)
return new Response(page.getType(), page.getPrimaryContentId());
if (request.uri.matches("^/[a-z0-9-]+$")) {
// TODO: Remove this as soon as CATEGORY_LIST uri(s) are added to Page table.
try {
String folder = DataAccessor.class.getResource("curated/").toURI().getPath();
for (String fileName : new File(folder).list()) if (fileName.matches("list[.]\\w\\w[.]" + request.uri.substring(1)))
return new Response(PageType.CATEGORY_LIST, fileName.substring(fileName.lastIndexOf('.') + 1));
} catch (URISyntaxException e) {
logger.log(Level.SEVERE, "Failed to list category list files.", e);
throw new UnexpectedServerException();
}
}
JsonObject errorMessages = new JsonObject();
errorMessages.addProperty("uri", "Invalid uri !");
throw new InvalidArgumentException(errorMessages);
}
use of com.pratilipi.api.annotation.Get in project pratilipi by Pratilipi.
the class PageContentApi method get.
@Get
public Response get(GetRequest request) throws UnexpectedServerException {
String title = null;
StringBuilder content = new StringBuilder();
try {
File file = _getFile(_getFileName(request.pageName, request.language));
if (// Fall-back to English
file == null && request.language != Language.ENGLISH)
file = _getFile(_getFileName(request.pageName, Language.ENGLISH));
if (// File doesn't exist in specified language and English
file == null)
return new Response();
LineIterator it = FileUtils.lineIterator(file, "UTF-8");
if (it.hasNext())
title = it.nextLine().trim();
while (it.hasNext()) content.append(it.nextLine() + "<br/>");
LineIterator.closeQuietly(it);
} catch (IOException e) {
logger.log(Level.SEVERE, "Exception while reading from data file.", e);
throw new UnexpectedServerException();
}
return new Response(title, content.toString());
}
use of com.pratilipi.api.annotation.Get in project pratilipi by Pratilipi.
the class InitV1Api method get.
@Get
public Response get(GetRequest request) throws UnexpectedServerException {
DataAccessor dataAccessor = DataAccessorFactory.getDataAccessor();
List<Response.Section> sectionList = new LinkedList<>();
List<Long> pratilipiIdMasterList = new LinkedList<>();
for (String listName : dataAccessor.getHomeSectionList(request.language)) {
String title = dataAccessor.getPratilipiListTitle(listName, request.language);
if (title == null)
continue;
if (title.indexOf('|') != -1)
title = title.substring(0, title.indexOf('|')).trim();
PratilipiFilter pratilipiFilter = new PratilipiFilter();
pratilipiFilter.setLanguage(request.language);
pratilipiFilter.setListName(listName);
pratilipiFilter.setState(PratilipiState.PUBLISHED);
List<Long> pratilipiIdList = dataAccessor.getPratilipiIdList(pratilipiFilter, null, null, 6).getDataList();
if (pratilipiIdList.size() < 6)
continue;
sectionList.add(new Response.Section(title, "/" + listName));
pratilipiIdMasterList.addAll(pratilipiIdList);
}
List<PratilipiData> pratilipiDataMasterList = PratilipiDataUtil.createPratilipiDataList(pratilipiIdMasterList, true);
if (UxModeFilter.isAndroidApp()) {
DocAccessor docAccessor = DataAccessorFactory.getDocAccessor();
for (PratilipiData pratilipiData : pratilipiDataMasterList) {
PratilipiContentDoc pcDoc = docAccessor.getPratilipiContentDoc(pratilipiData.getId());
if (pcDoc == null)
continue;
pratilipiData.setIndex(pcDoc.getIndex());
}
}
for (int i = 0; i < sectionList.size(); i++) sectionList.get(i).setPratilipiList(pratilipiDataMasterList.subList(i * 6, i * 6 + 6));
return new Response(sectionList);
}
use of com.pratilipi.api.annotation.Get in project pratilipi by Pratilipi.
the class InitV2Api method get.
@Get
public Response get(GetRequest request) throws UnexpectedServerException {
DataAccessor dataAccessor = DataAccessorFactory.getDataAccessor();
List<Response.Section> sectionList = new LinkedList<>();
List<Long> pratilipiIdMasterList = new LinkedList<>();
for (String listName : dataAccessor.getHomeSectionList(request.language)) {
String title = dataAccessor.getPratilipiListTitle(listName, request.language);
if (title == null)
continue;
if (title.indexOf('|') != -1)
title = title.substring(0, title.indexOf('|')).trim();
PratilipiFilter pratilipiFilter = new PratilipiFilter();
pratilipiFilter.setLanguage(request.language);
pratilipiFilter.setListName(listName);
pratilipiFilter.setState(PratilipiState.PUBLISHED);
List<Long> pratilipiIdList = dataAccessor.getPratilipiIdList(pratilipiFilter, null, null, 6).getDataList();
if (pratilipiIdList.size() < 6)
continue;
sectionList.add(new Response.Section(title, "/" + listName));
pratilipiIdMasterList.addAll(pratilipiIdList);
}
List<PratilipiData> pratilipiDataMasterList = PratilipiDataUtil.createPratilipiDataList(pratilipiIdMasterList, true);
for (int i = 0; i < sectionList.size(); i++) sectionList.get(i).setPratilipiList(pratilipiDataMasterList.subList(i * 6, i * 6 + 6));
return new Response(sectionList);
}
use of com.pratilipi.api.annotation.Get in project pratilipi by Pratilipi.
the class NotificationProcessApi method get.
@Get
public GenericResponse get(GenericRequest request) throws UnexpectedServerException {
DataAccessor dataAccessor = DataAccessorFactory.getDataAccessor();
List<Notification> notifList = dataAccessor.getNotificationListWithFcmPending(1000);
logger.log(Level.INFO, "Total pending notifications = " + notifList.size());
Map<Long, List<Notification>> userIdNotifListMap = new HashMap<>();
for (Notification notif : notifList) {
List<Notification> userNotifList = userIdNotifListMap.get(notif.getUserId());
if (userNotifList == null) {
userNotifList = new LinkedList<>();
userIdNotifListMap.put(notif.getUserId(), userNotifList);
}
userNotifList.add(notif);
}
for (final Entry<Long, List<Notification>> entry : userIdNotifListMap.entrySet()) {
Async async = new Async() {
@Override
public void exec() {
for (Notification notif : entry.getValue()) {
Task task = TaskQueueFactory.newTask().setUrl("/notification/process").addParam("notificationId", notif.getId().toString());
TaskQueueFactory.getNotificationTaskQueue().add(task);
logger.log(Level.INFO, "Task created for notification id " + notif.getId());
}
}
};
NotificationDataUtil.updateFirebaseDb(entry.getKey(), entry.getValue(), async);
}
return new GenericResponse();
}
Aggregations