public BoardColumnController() { Get("/api/v1/board_column/get", _ => { var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameter("board_column_guid"), new ExistsInTable("board_column_guid", "board_columns", "guid") }); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } return(HttpResponse.Item("board_column", new BoardColumnTransformer().Transform( BoardColumnRepository.FindByGuid((string)Request.Query["board_column_guid"]) ))); }); Get("/api/v1/board/columns/get", _ => { var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameter("board_guid"), new ExistsInTable("board_guid", "boards", "guid") }); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } var board = BoardRepository.FindByGuid(GetRequestStr("board_guid")); return(HttpResponse.Item("board_columns", new BoardColumnTransformer().Many(board.Columns()))); }); }
public void Create_DataCorrect_BoardCreated() { var creator = UserFaker.Create(); var project = ProjectFaker.Create(creator); var browser = new Browser(new DefaultNancyBootstrapper()); var boardTitle = "testBoard" + Rand.SmallInt(); var boardDescription = "testDescription" + Rand.SmallInt(); var result = browser.Post("/api/v1/board/create", with => { with.HttpRequest(); with.Query("api_token", Jwt.FromUserId(creator.id)); with.Query("name", boardTitle); with.Query("description", boardDescription); with.Query("creator_guid", creator.guid); with.Query("project_guid", project.guid); }).Result; Assert.AreEqual(HttpStatusCode.Created, result.StatusCode); var json = JObject.Parse(result.Body.AsString()); var guid = json["data"]["board"].Value<string>("guid") ?? ""; var createdBoard = BoardRepository.FindByGuid(guid); Assert.NotNull(createdBoard); Assert.AreEqual(boardTitle, createdBoard.name); Assert.AreEqual(boardDescription, createdBoard.description); Assert.AreEqual( createdBoard.guid, json["data"]["board"].Value<string>("guid") ?? "" ); }
public BoardColumnCrudController() { Post("/api/v1/board_column/create", _ => { var me = UserRepository.Find(CurrentRequest.UserId); var board = BoardRepository.FindByGuid(GetRequestStr("board_guid")); var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameters(new[] { "name", "board_guid", "board_order" }), new ExistsInTable("board_guid", "boards", "guid"), new HasPermission(me, board.Project().id, EntityType.Project) }, true); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } var boardOrder = (short)Request.Query["board_order"]; if (BoardColumnRepository.Find(board, boardOrder) != null) { return(HttpResponse.Error(HttpStatusCode.Conflict, "Board's column with this board's order already exists ")); } var boardColumn = BoardColumnRepository.CreateAndGet( (string)Request.Query["name"], board, boardOrder ); return(HttpResponse.Item( "board_column", new BoardColumnTransformer().Transform(boardColumn), HttpStatusCode.Created )); }); Patch("/api/v1/board_column/edit", _ => { var me = UserRepository.Find(CurrentRequest.UserId); var boardColumn = BoardColumnRepository.FindByGuid(GetRequestStr("board_column_guid")); var board = BoardRepository.Find(boardColumn.board_id); var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameters(new[] { "board_column_guid" }), new ExistsInTable("board_column_guid", "board_columns", "guid"), new HasPermission(me, boardColumn.Board().id, EntityType.Board) }, true); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } if (BoardColumnRepository.Find(board, Convert.ToInt16(GetRequestStr("board_order"))) != null) { return(HttpResponse.Error(HttpStatusCode.Conflict, "Board's column with this board's order already exists ")); } boardColumn = BoardColumnRepository.UpdateAndRefresh(boardColumn, new JObject() { ["name"] = GetRequestStr("name"), ["board_order"] = GetRequestStr("board_order") }); return(HttpResponse.Item("board_column", new BoardColumnTransformer().Transform(boardColumn))); }); Delete("/api/v1/board_column/delete", _ => { var me = UserRepository.Find(CurrentRequest.UserId); var boardColumn = BoardColumnRepository.FindByGuid(GetRequestStr("board_column_guid")); var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameters(new[] { "board_column_guid" }), new ExistsInTable("board_column_guid", "board_columns", "guid"), new HasPermission(me, boardColumn.Board().id, EntityType.Board) }, true); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } boardColumn.Delete(); return(HttpResponse.Item("board", new BoardColumnTransformer().Transform(boardColumn))); }); }
public BoardCrudController() { Post("/api/v1/board/create", _ => { var me = UserRepository.Find(CurrentRequest.UserId); var project = ProjectRepository.FindByGuid(GetRequestStr("project_guid")); var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameters(new[] { "name", "description", "project_guid" }), new ExistsInTable("project_guid", "projects", "guid"), new HasPermission(me, project.id, EntityType.Project) }, true); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } var board = BoardRepository.CreateAndGet( (string)Request.Query["name"], (string)Request.Query["description"], project, me ); return(HttpResponse.Item( "board", new BoardTransformer().Transform(board), HttpStatusCode.Created )); }); Patch("/api/v1/board/edit", _ => { var me = UserRepository.Find(CurrentRequest.UserId); var board = BoardRepository.FindByGuid(GetRequestStr("board_guid")); var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameters(new[] { "board_guid" }), new ExistsInTable("board_guid", "boards", "guid"), new HasPermission(me, board.id, EntityType.Board) }, true); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } board = BoardRepository.UpdateAndRefresh(board, new JObject() { ["name"] = GetRequestStr("name"), ["description"] = GetRequestStr("description"), ["updated_at"] = DateTime.Now, }); return(HttpResponse.Item("board", new BoardTransformer().Transform(board))); }); Delete("/api/v1/board/delete", _ => { var me = UserRepository.Find(CurrentRequest.UserId); var board = BoardRepository.FindByGuid(GetRequestStr("board_guid")); var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameters(new[] { "board_guid" }), new ExistsInTable("board_guid", "boards", "guid"), new HasPermission(me, board.id, EntityType.Board) }, true); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } board.Delete(); return(HttpResponse.Item("board", new BoardTransformer().Transform(board))); }); }