CustomAction.java 5.2 KB
Newer Older
1 2 3
package com.x.organization.assemble.personal.jaxrs.custom;

import javax.servlet.http.HttpServletRequest;
R
roo00 已提交
4
import javax.ws.rs.*;
5 6 7 8 9
import javax.ws.rs.container.AsyncResponse;
import javax.ws.rs.container.Suspended;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;

R
roo00 已提交
10 11
import com.google.gson.JsonElement;
import com.x.base.core.project.annotation.FieldDescribe;
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
import com.x.base.core.project.annotation.JaxrsDescribe;
import com.x.base.core.project.annotation.JaxrsMethodDescribe;
import com.x.base.core.project.annotation.JaxrsParameterDescribe;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.http.HttpMediaType;
import com.x.base.core.project.jaxrs.ResponseFactory;
import com.x.base.core.project.jaxrs.StandardJaxrsAction;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;

@Path("custom")
@JaxrsDescribe("个性化数据")
public class CustomAction extends StandardJaxrsAction {

	private static Logger logger = LoggerFactory.getLogger(CustomAction.class);

	@JaxrsMethodDescribe(value = "根据当前的访问用户获取Custom。", action = ActionGet.class)
	@GET
	@Path("{name}")
	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
	@Consumes(MediaType.APPLICATION_JSON)
	public void get(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
			@JaxrsParameterDescribe("名称") @PathParam("name") String name) {
		ActionResult<String> result = new ActionResult<>();
		EffectivePerson effectivePerson = this.effectivePerson(request);
		try {
			result = new ActionGet().execute(effectivePerson, name);
		} catch (Exception e) {
			logger.error(e, effectivePerson, request, null);
			result.error(e);
		}
R
update  
roo00 已提交
44
		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
45
	}
46 47
	@JaxrsMethodDescribe(value = "获取指定用户的Custom。", action = ActionManagerGet.class)
	@GET
48
	@Path("manager/person/{person}/name/{name}")
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
	@Consumes(MediaType.APPLICATION_JSON)
	public void managerGet(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
					@JaxrsParameterDescribe("用户") @PathParam("person") String person,
					@JaxrsParameterDescribe("名称") @PathParam("name") String name) {
		ActionResult<String> result = new ActionResult<>();
		EffectivePerson effectivePerson = this.effectivePerson(request);
		try {
			result = new ActionManagerGet().execute(effectivePerson,person, name);
		} catch (Exception e) {
			logger.error(e, effectivePerson, request, null);
			result.error(e);
		}
		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
	}
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79

	@JaxrsMethodDescribe(value = "更新指定名称的Custom.", action = ActionEdit.class)
	@PUT
	@Path("{name}")
	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
	@Consumes(MediaType.APPLICATION_JSON)
	public void update(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
			@JaxrsParameterDescribe("名称") @PathParam("name") String name, String wi) {
		ActionResult<ActionEdit.Wo> result = new ActionResult<>();
		EffectivePerson effectivePerson = this.effectivePerson(request);
		try {
			result = new ActionEdit().execute(effectivePerson, name, wi);
		} catch (Exception e) {
			logger.error(e, effectivePerson, request, null);
			result.error(e);
		}
R
update  
roo00 已提交
80
		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
81 82
	}

R
roo00 已提交
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
	@JaxrsMethodDescribe(value = "管理员更新指定用户指定名称的Custom.", action = ActionManagerEdit.class)
	@PUT
	@Path("manager/person/{person}/name/{name}")
	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
	@Consumes(MediaType.APPLICATION_JSON)
	public void managerUpdate(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
							  @JaxrsParameterDescribe("用户") @PathParam("person") String person,
							  @JaxrsParameterDescribe("定义名称") @PathParam("name") String name, String wi) {
		ActionResult<ActionManagerEdit.Wo> result = new ActionResult<>();
		EffectivePerson effectivePerson = this.effectivePerson(request);
		try {
			result = new ActionManagerEdit().execute(effectivePerson, person, name, wi);
		} catch (Exception e) {
			logger.error(e, effectivePerson, request, null);
			result.error(e);
		}
		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
	}

102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
	@JaxrsMethodDescribe(value = "删除指定名称的Custom。", action = ActionDelete.class)
	@DELETE
	@Path("{name}")
	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
	@Consumes(MediaType.APPLICATION_JSON)
	public void delete(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
			@JaxrsParameterDescribe("名称") @PathParam("name") String name) {
		ActionResult<ActionDelete.Wo> result = new ActionResult<>();
		EffectivePerson effectivePerson = this.effectivePerson(request);
		try {
			result = new ActionDelete().execute(effectivePerson, name);
		} catch (Exception e) {
			logger.error(e, effectivePerson, request, null);
			result.error(e);
		}
R
update  
roo00 已提交
117
		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
118 119 120
	}

}