#pragma once
#include <drogon/HttpController.h>
using namespace drogon;
namespace api {
class Attachment : public drogon::HttpController<Attachment> {
public:
	METHOD_LIST_BEGIN
	// use METHOD_ADD to add your custom processing function here;
	METHOD_ADD(Attachment::get, "", Get); // Path is '/api/attachment'
	METHOD_ADD(Attachment::upload, "/upload", Post);
	METHOD_ADD(Attachment::uploadImage, "/uploadImage", Post);
	METHOD_ADD(Attachment::download, "/download", Get);
	METHOD_LIST_END
	// your declaration of processing function maybe like this:
	void get(const HttpRequestPtr &req,
			std::function<void(const HttpResponsePtr &)> &&callback);
	void upload(const HttpRequestPtr &req,
			std::function<void(const HttpResponsePtr &)> &&callback);
	void uploadImage(const HttpRequestPtr &req,
			std::function<void(const HttpResponsePtr &)> &&callback);
	void download(const HttpRequestPtr &req,
			std::function<void(const HttpResponsePtr &)> &&callback);
};
} // namespace api
