private static string PostApi(KptRepository db, HttpListenerRequest req, Command cmd) { if (!req.HasEntityBody) { throw new ArgumentException("指定したAPIに必要なデータがありません。POST " + cmd.ToString()); } var body = new StreamReader(req.InputStream).ReadToEnd(); var keyValues = HttpUtility.ParseQueryString(body); if (cmd.IsUsers && cmd.UserId == 0 && !cmd.IsKptBoards && cmd.KptBoardId == 0) { // POST /v1/users/ Console.WriteLine("人追加"); int?age = null; if (keyValues.Get("age") != null) { age = int.Parse(keyValues.Get("age")); } var user = new User { Name = keyValues.Get("name"), Age = age }; db.AddUser(user); return(""); } if (cmd.IsUsers && cmd.UserId != 0 && cmd.IsKptBoards && cmd.KptBoardId == 0) { // POST /v1/users/n/kptboards/ Console.WriteLine("ボード追加"); var kptBoard = new KptBoard { Time = DateTime.Now, Keep = keyValues.Get("keep"), Problem = keyValues.Get("problem"), Try = keyValues.Get("try"), UserId = cmd.UserId }; db.AddKptBoard(kptBoard); return(""); } throw new ArgumentException("指定したAPIがありません。POST " + cmd.ToString()); }
private string DeleteApi(KptRepository db, HttpListenerRequest req, Command cmd) { if (cmd.IsUsers && cmd.UserId != 0 && cmd.IsKptBoards && cmd.KptBoardId != 0) { // DELETE /v1/users/n/kptboards/n Console.WriteLine("ボード削除"); var kptBoard = new KptBoard { KptBoardId = cmd.KptBoardId }; db.DeleteKptBoard(kptBoard); return(""); } throw new ArgumentException("指定したAPIがありません。DELETE " + cmd.ToString()); }