package cn.dreampie.resource;
import cn.dreampie.captcha.CaptchaFactory;
import cn.dreampie.captcha.service.Captcha;
import cn.dreampie.common.http.HttpMessage;
import cn.dreampie.common.http.UploadedFile;
import cn.dreampie.common.http.exception.HttpException;
import cn.dreampie.common.http.result.HttpResult;
import cn.dreampie.common.util.Maper;
import cn.dreampie.orm.Record;
import cn.dreampie.orm.TableSetting;
import cn.dreampie.orm.transaction.Transaction;
import cn.dreampie.resource.user.model.User;
import cn.dreampie.route.annotation.*;
import cn.dreampie.route.core.Headers;
import cn.dreampie.route.core.multipart.FILE;
import cn.dreampie.service.HelloService;
import org.springframework.beans.factory.annotation.Autowired;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* Created by wangrenhui on 15/1/10.
*/
@API("/tests")
public class TestResource extends ApiResource {
@Autowired
private HelloService helloService;
@GET(value = "/:get", headers = {"Accept: application/vnd.resty.v1+json"})
public HttpResult<List<User>> get(String get, Date x, cn.dreampie.common.http.HttpResponse response) {
throw new HttpException(HttpMessage.NOT_FOUND);
// response.addCookie( "xxxx", "hh");
// System.out.println("xxxxx" + x);
// System.out.println(helloService.hello());
//如果需要返回请求状态 new HttpResult
// return new HttpResult<List<User>>(HttpStatus.OK, User.dao.findAll());
}
@POST("/:post")
public Map post(String post, Map<String, String> params) {
params.put("post", post);
return params;
}
@PUT("/:put")
public Map put(String put, Map<String, String> map) {
map.put("put", put);
return map;
}
@PATCH("/:patch")
public Map patch(String patch) {
return Maper.of("patch", patch);
}
@DELETE("/:delete")
public Map delete(String delete) {
Map<String, String> map = Maper.of("a", "1", "b", "2");
map.remove(delete);
return map;
}
@POST("/transaction")
@Transaction(name = {"default", "demo"})
public void transaction() {
User u = new User().set("sid", 1).set("username", "a").set("providername", "test").set("password", "123456").set("created_at", new Date());
u.save();
Record record = new Record("demo", new TableSetting("sec_user"));
Record user = record.reNew().set("sid", 1).set("username", "a").set("providername", "test").set("password", "123456").set("created_at", new Date());
user.save();
// throw new RuntimeException("xx");
}
//上传文件
@POST("/file")
@FILE(renamer = MyFileRenamer.class)
public UploadedFile upload(UploadedFile testfile, String des) {
//如果上传文件的同时 有参数 注意UploadedFile 参数的名字 需要和input的name对应
System.out.println(des);
return testfile;
}
//下载文件
@GET("/file")
public File download() {
return new File(getRequest().getRealPath("/") + "upload/resty000.jar");
}
@GET("/headers")
public Headers headers(Headers headers) {
return null;
}
@GET("/boom")
public boolean test() {
return new User().set("username", "test" + Thread.currentThread().getName()).set("providername", "test").set("created_at", new Date())
.set("password", "123456").set("sid", "1").save();
}
@GET
public String get() {
return "ok";
}
private static CaptchaFactory captchaFactory = new CaptchaFactory();
@GET(value = "/captcha", cached = false)
public BufferedImage captcha() {
// captchaFactory.setWordFactory(new RandomWordFactory("ABCDEFGHIJKLMNPQRSTUVWXYZ123456789",4));
// captchaFactory.setColorFactory(new SingleColorFactory(new Color(25, 60, 170)));
// captchaFactory.setBackgroundFactory(new RandomColorBackgroundFactory(new Color(25, 60, 170)));
Captcha captcha = captchaFactory.getCaptcha();
//把值存好
System.out.println(captcha.getWord());
return captcha.getImage();
}
}