Search in sources :

Example 11 with Get

use of com.pratilipi.api.annotation.Get in project pratilipi by Pratilipi.

the class UserBackupApi method get.

@Get
public GenericResponse get(GetRequest request) throws UnexpectedServerException {
    DataAccessor dataAccessor = DataAccessorFactory.getDataAccessor();
    BlobAccessor blobAccessor = DataAccessorFactory.getBlobAccessorBackup();
    Date backupDate = new Date();
    DateFormat yearFormat = new SimpleDateFormat("yyyy");
    DateFormat dayFormat = new SimpleDateFormat("dd");
    DateFormat hourFormat = new SimpleDateFormat("HH");
    DateFormat csvDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    yearFormat.setTimeZone(TimeZone.getTimeZone("Asia/Kolkata"));
    dayFormat.setTimeZone(TimeZone.getTimeZone("Asia/Kolkata"));
    hourFormat.setTimeZone(TimeZone.getTimeZone("Asia/Kolkata"));
    csvDateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Kolkata"));
    StringBuilder backup = new StringBuilder();
    StringBuilder csv = new StringBuilder(CSV_HEADER + LINE_SEPARATOR);
    Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new GsonLongDateAdapter()).create();
    int batchSize = 1000;
    String cursor = null;
    int count = 0;
    while (true) {
        DataListCursorTuple<User> userListCursorTupe = dataAccessor.getUserList(cursor, batchSize);
        List<User> userList = userListCursorTupe.getDataList();
        for (User user : userList) {
            backup.append(gson.toJson(user) + LINE_SEPARATOR);
            if (request.generateCsv())
                csv.append("'" + user.getId().toString()).append(CSV_SEPARATOR).append(user.getFacebookId() == null ? "" : "'" + user.getFacebookId()).append(CSV_SEPARATOR).append(user.getEmail() == null ? "" : user.getEmail()).append(CSV_SEPARATOR).append(csvDateFormat.format(user.getSignUpDate())).append(LINE_SEPARATOR);
        }
        count = count + userList.size();
        if (userList.size() < batchSize)
            break;
        else
            cursor = userListCursorTupe.getCursor();
    }
    String year = yearFormat.format(backupDate);
    String day = dayFormat.format(backupDate);
    String hour = hourFormat.format(backupDate);
    String fileName = "datastore.user/" + year + "-mm-" + day + "/" + "user-" + year + "-mm-" + day + "-" + hour + ":xx-IST";
    BlobEntry userBackupEntry = blobAccessor.newBlob(fileName, backup.toString().getBytes(Charset.forName("UTF-8")), "text/plain");
    blobAccessor.createOrUpdateBlob(userBackupEntry);
    if (request.generateCsv()) {
        BlobEntry userCsvEntry = blobAccessor.newBlob("datastore/user.csv", csv.toString().getBytes(Charset.forName("UTF-8")), "text/csv");
        blobAccessor.createOrUpdateBlob(userCsvEntry);
    }
    logger.log(Level.INFO, "Backed up " + count + " User Entities.");
    return new GenericResponse();
}
Also used : User(com.pratilipi.data.type.User) GsonBuilder(com.google.gson.GsonBuilder) GenericResponse(com.pratilipi.api.shared.GenericResponse) DataAccessor(com.pratilipi.data.DataAccessor) BlobEntry(com.pratilipi.data.type.BlobEntry) Gson(com.google.gson.Gson) Date(java.util.Date) SimpleDateFormat(java.text.SimpleDateFormat) DateFormat(java.text.DateFormat) BlobAccessor(com.pratilipi.data.BlobAccessor) SimpleDateFormat(java.text.SimpleDateFormat) GsonLongDateAdapter(com.pratilipi.common.util.GsonLongDateAdapter) Get(com.pratilipi.api.annotation.Get)

Example 12 with Get

use of com.pratilipi.api.annotation.Get in project pratilipi by Pratilipi.

the class BatchProcessApi method get.

@Get
public GenericResponse get(GenericRequest request) throws UnexpectedServerException {
    DataAccessor dataAccessor = DataAccessorFactory.getDataAccessor();
    List<BatchProcess> batchProcessList = dataAccessor.getIncompleteBatchProcessList();
    for (BatchProcess batchProcess : batchProcessList) if (BatchProcessDataUtil.exec(batchProcess.getId()))
        // Only one execution per iteration as next BatchProcess' state might change by the time it is picked up.
        break;
    return new GenericResponse();
}
Also used : GenericResponse(com.pratilipi.api.shared.GenericResponse) DataAccessor(com.pratilipi.data.DataAccessor) BatchProcess(com.pratilipi.data.type.BatchProcess) Get(com.pratilipi.api.annotation.Get)

Example 13 with Get

use of com.pratilipi.api.annotation.Get in project pratilipi by Pratilipi.

the class AuthorProcessApi method get.

@Get
public GenericResponse get(GenericRequest request) {
    DataAccessor dataAccessor = DataAccessorFactory.getDataAccessor();
    // Fetching AppProperty
    String appPropertyId = "Api.AuthorProcess.ValidateData";
    AppProperty appProperty = dataAccessor.getAppProperty(appPropertyId);
    if (appProperty == null) {
        appProperty = dataAccessor.newAppProperty(appPropertyId);
        appProperty.setValue(new Date(0));
    }
    // Fetching list of author ids.
    AuthorFilter authorFilter = new AuthorFilter();
    authorFilter.setMinLastUpdate((Date) appProperty.getValue(), false);
    List<Long> authorIdList = dataAccessor.getAuthorIdList(authorFilter, null, 10000).getDataList();
    // Creating one task per author id.
    List<Task> taskList = new ArrayList<>(authorIdList.size());
    for (Long authorId : authorIdList) {
        Task task = TaskQueueFactory.newTask().setUrl("/author/process").addParam("authorId", authorId.toString()).addParam("validateData", "true");
        taskList.add(task);
    }
    TaskQueueFactory.getAuthorOfflineTaskQueue().addAll(taskList);
    logger.log(Level.INFO, "Added " + taskList.size() + " tasks.");
    // Updating AppProperty.
    if (authorIdList.size() > 0) {
        appProperty.setValue(dataAccessor.getAuthor(authorIdList.get(authorIdList.size() - 1)).getLastUpdated());
        appProperty = dataAccessor.createOrUpdateAppProperty(appProperty);
    }
    return new GenericResponse();
}
Also used : Task(com.pratilipi.taskqueue.Task) GenericResponse(com.pratilipi.api.shared.GenericResponse) DataAccessor(com.pratilipi.data.DataAccessor) AuthorFilter(com.pratilipi.common.util.AuthorFilter) ArrayList(java.util.ArrayList) AppProperty(com.pratilipi.data.type.AppProperty) Date(java.util.Date) Get(com.pratilipi.api.annotation.Get)

Example 14 with Get

use of com.pratilipi.api.annotation.Get in project pratilipi by Pratilipi.

the class BlogPostApi method get.

@Get
public Response get(GetRequest request) {
    DataAccessor dataAccessor = DataAccessorFactory.getDataAccessor();
    BlogPost blogPost = dataAccessor.getBlogPost(request.blogPostId);
    BlogPostData blogPostData = BlogPostDataUtil.createBlogPostData(blogPost);
    return new Response(blogPostData);
}
Also used : GenericResponse(com.pratilipi.api.shared.GenericResponse) DataAccessor(com.pratilipi.data.DataAccessor) BlogPostData(com.pratilipi.data.client.BlogPostData) BlogPost(com.pratilipi.data.type.BlogPost) Get(com.pratilipi.api.annotation.Get)

Example 15 with Get

use of com.pratilipi.api.annotation.Get in project pratilipi by Pratilipi.

the class BlogPostListApi method get.

@Get
public Response get(GetRequest request) throws InsufficientAccessException {
    BlogPostFilter blogPostFilter = new BlogPostFilter();
    blogPostFilter.setBlogId(request.blogId);
    blogPostFilter.setLanguage(request.language);
    blogPostFilter.setState(request.state);
    DataListCursorTuple<BlogPostData> blogPostDataListCursorTuple = BlogPostDataUtil.getBlogPostDataList(blogPostFilter, request.cursor, 0, request.resultCount == null ? 10 : request.resultCount);
    return new Response(blogPostDataListCursorTuple.getDataList(), blogPostDataListCursorTuple.getCursor());
}
Also used : GenericResponse(com.pratilipi.api.shared.GenericResponse) BlogPostData(com.pratilipi.data.client.BlogPostData) BlogPostFilter(com.pratilipi.common.util.BlogPostFilter) 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