JobServiceController.java 3.32 KB
/**
 * 
 */
package com.yoho.jobs.server.controller;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.yoho.jobs.server.domain.ConstantEnum;
import com.yoho.jobs.server.domain.JobInfo;
import com.yoho.jobs.server.domain.JobResponse;
import com.yoho.jobs.server.domain.ShowAllJobResponse;
import com.yoho.jobs.server.scheduler.JobService;

/**
 * @author yanzhang.fu
 *
 */
@RestController
public class JobServiceController {
	@Resource(name = "jobService")
	private JobService jobService;

	@RequestMapping("/jobmanager/createjob")
	public JobResponse createJob(@RequestBody JobInfo jobInfo) {
		JobResponse response = new JobResponse();
		try {
			jobService.createJob(jobInfo);
			buildJobResponse(ConstantEnum.JobResponse.SUCCESS, ConstantEnum.JobResponse.SUCCESS_DESC, response);
		} catch (Exception e) {
			buildJobResponse(ConstantEnum.JobResponse.FAIL, e.getMessage(), response);
		}
		return response;
	}

	@RequestMapping("/jobmanager/stopjob")
	public JobResponse stopJob(@RequestBody JobInfo jobInfo) {
		JobResponse response = new JobResponse();
		try {
			jobService.stopJob(jobInfo);
			buildJobResponse(ConstantEnum.JobResponse.SUCCESS, ConstantEnum.JobResponse.SUCCESS_DESC, response);
		} catch (Exception e) {
			buildJobResponse(ConstantEnum.JobResponse.FAIL, e.getMessage(), response);
		}
		return response;
	}

	@RequestMapping("/jobmanager/startjob")
	public JobResponse startJob(@RequestBody JobInfo jobInfo) {
		JobResponse response = new JobResponse();
		try {
			jobService.startJob(jobInfo);
			buildJobResponse(ConstantEnum.JobResponse.SUCCESS, ConstantEnum.JobResponse.SUCCESS_DESC, response);
		} catch (Exception e) {
			buildJobResponse(ConstantEnum.JobResponse.FAIL, e.getMessage(), response);
		}

		return response;
	}

	@RequestMapping("/jobmanager/updatejob")
	public JobResponse updateJob(@RequestBody JobInfo jobInfo) {
		JobResponse response = new JobResponse();
		try {
			jobService.updateJob(jobInfo);
			buildJobResponse(ConstantEnum.JobResponse.SUCCESS, ConstantEnum.JobResponse.SUCCESS_DESC, response);
		} catch (Exception e) {
			buildJobResponse(ConstantEnum.JobResponse.FAIL, e.getMessage(), response);
		}

		return response;
	}

	@RequestMapping("/jobmanager/showalljob")
	public ShowAllJobResponse showAllJobs() {
		ShowAllJobResponse response = new ShowAllJobResponse();
		try {
			Map<String, List<JobInfo>> jobs = jobService.getAllJobs();
			response.setAllJobs(jobs);
			response.setCode("0");
			response.setDesc("success");
		} catch (Exception e) {
			response.setCode("1");
			response.setDesc(e.getMessage());
		}
		return response;
	}

	@RequestMapping("/jobmanager/retryjob")
	public JobResponse retryJob(@RequestBody JobInfo jobInfo) {
		JobResponse response = new JobResponse();
		try {
			jobService.retryJob(jobInfo);
			buildJobResponse(ConstantEnum.JobResponse.SUCCESS, ConstantEnum.JobResponse.SUCCESS_DESC, response);

		} catch (Exception e) {
			buildJobResponse(ConstantEnum.JobResponse.FAIL, e.getMessage(), response);
		}

		return response;
	}

	private void buildJobResponse(String code, String message, JobResponse response) {
		response.setCode(code);
		response.setDesc(message);
	}
}