Package com.google.ytd.command

Source Code of com.google.ytd.command.DeleteVideoSubmission

package com.google.ytd.command;

import org.json.JSONObject;

import java.util.logging.Logger;

import com.google.inject.Inject;
import com.google.ytd.dao.AdminConfigDao;
import com.google.ytd.dao.AssignmentDao;
import com.google.ytd.dao.VideoSubmissionDao;
import com.google.ytd.model.Assignment;
import com.google.ytd.model.VideoSubmission;
import com.google.ytd.util.Util;
import com.google.ytd.youtube.YouTubeApiHelper;

public class DeleteVideoSubmission extends Command {
  private static final Logger LOG = Logger.getLogger(DeleteVideoSubmission.class.getName());

  @Inject
  private Util util = null;
 
  @Inject
  private YouTubeApiHelper adminYouTubeApi;
 
  private VideoSubmissionDao videoSubmissionDao = null;
  private AdminConfigDao adminConfigDao = null;
  private AssignmentDao assignmentDao = null;
 
  @Inject
  public DeleteVideoSubmission(VideoSubmissionDao videoSubmissionDao, AdminConfigDao adminConfigDao,
      AssignmentDao assignmentDao) {
    this.videoSubmissionDao = videoSubmissionDao;
    this.adminConfigDao = adminConfigDao;
    this.assignmentDao = assignmentDao;
  }

  @Override
  public JSONObject execute() {
    JSONObject json = new JSONObject();
    String id = getParam("id");

    if (util.isNullOrEmpty(id)) {
      throw new IllegalArgumentException("Missing required param: id");
    }

    VideoSubmission videoSubmission = videoSubmissionDao.getSubmissionById(id);
    if (videoSubmission.isInPlaylist()) {
      removeFromPlaylist(videoSubmission);
    }
   
    videoSubmissionDao.deleteSubmission(id);
   
    return json;
  }
 
  private void removeFromPlaylist(VideoSubmission videoSubmission) {
    String token = adminConfigDao.getAdminConfig().getYouTubeAuthSubToken();
    if (util.isNullOrEmpty(token)) {
      LOG.warning("No AuthSub token found in admin config.");
      return;
    }

    adminYouTubeApi.setAuthSubToken(token);

    long assignmentId = videoSubmission.getAssignmentId();
    Assignment assignment = assignmentDao.getAssignmentById(assignmentId);

    if (assignment == null) {
      LOG.warning(String.format("Couldn't find assignment id '%d' for video id '%s'.", assignmentId,
              videoSubmission.getId()));
      return;
    }

    String playlistId = assignment.getPlaylistId();
    if (util.isNullOrEmpty(playlistId)) {
      LOG.warning(String.format("Assignment id '%d' does not have an associated playlist.",
          assignmentId));
      return;
    }

    adminYouTubeApi.removeVideoFromPlaylist(playlistId, videoSubmission.getVideoId());
  }
}
TOP

Related Classes of com.google.ytd.command.DeleteVideoSubmission

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.