Search in sources :

Example 16 with Get

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);
}
Also used : GenericResponse(com.pratilipi.api.shared.GenericResponse) UnexpectedServerException(com.pratilipi.common.exception.UnexpectedServerException) InvalidArgumentException(com.pratilipi.common.exception.InvalidArgumentException) DataAccessor(com.pratilipi.data.DataAccessor) JsonObject(com.google.gson.JsonObject) Page(com.pratilipi.data.type.Page) URISyntaxException(java.net.URISyntaxException) File(java.io.File) Get(com.pratilipi.api.annotation.Get)

Example 17 with Get

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());
}
Also used : GenericResponse(com.pratilipi.api.shared.GenericResponse) UnexpectedServerException(com.pratilipi.common.exception.UnexpectedServerException) IOException(java.io.IOException) File(java.io.File) LineIterator(org.apache.commons.io.LineIterator) Get(com.pratilipi.api.annotation.Get)

Example 18 with Get

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);
}
Also used : DataAccessor(com.pratilipi.data.DataAccessor) DocAccessor(com.pratilipi.data.DocAccessor) LinkedList(java.util.LinkedList) GenericResponse(com.pratilipi.api.shared.GenericResponse) PratilipiFilter(com.pratilipi.common.util.PratilipiFilter) PratilipiData(com.pratilipi.data.client.PratilipiData) PratilipiContentDoc(com.pratilipi.data.type.PratilipiContentDoc) Get(com.pratilipi.api.annotation.Get)

Example 19 with Get

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);
}
Also used : DataAccessor(com.pratilipi.data.DataAccessor) LinkedList(java.util.LinkedList) PratilipiFilter(com.pratilipi.common.util.PratilipiFilter) PratilipiData(com.pratilipi.data.client.PratilipiData) Get(com.pratilipi.api.annotation.Get)

Example 20 with Get

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();
}
Also used : Task(com.pratilipi.taskqueue.Task) HashMap(java.util.HashMap) GenericResponse(com.pratilipi.api.shared.GenericResponse) DataAccessor(com.pratilipi.data.DataAccessor) Async(com.pratilipi.common.util.Async) List(java.util.List) LinkedList(java.util.LinkedList) Notification(com.pratilipi.data.type.Notification) Get(com.pratilipi.api.annotation.Get)

Aggregations

Get (com.pratilipi.api.annotation.Get)28 GenericResponse (com.pratilipi.api.shared.GenericResponse)25 DataAccessor (com.pratilipi.data.DataAccessor)20 Date (java.util.Date)9 ArrayList (java.util.ArrayList)7 PratilipiFilter (com.pratilipi.common.util.PratilipiFilter)6 Task (com.pratilipi.taskqueue.Task)6 PratilipiData (com.pratilipi.data.client.PratilipiData)5 AppProperty (com.pratilipi.data.type.AppProperty)5 Author (com.pratilipi.data.type.Author)5 Gson (com.google.gson.Gson)4 Pratilipi (com.pratilipi.data.type.Pratilipi)4 SimpleDateFormat (java.text.SimpleDateFormat)4 GsonBuilder (com.google.gson.GsonBuilder)3 AuthorFilter (com.pratilipi.common.util.AuthorFilter)3 BlobAccessor (com.pratilipi.data.BlobAccessor)3 DocAccessor (com.pratilipi.data.DocAccessor)3 AuthorData (com.pratilipi.data.client.AuthorData)3 BlobEntry (com.pratilipi.data.type.BlobEntry)3 Event (com.pratilipi.data.type.Event)3