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_BoardColumnCreated() { var user = UserFaker.Create(); var board = BoardFaker.Create(user); var browser = new Browser(new DefaultNancyBootstrapper()); var boardColumnTitle = "testBoard" + Rand.SmallInt(); var boardOrder = Convert.ToString(Rand.IntRange(0, 25)); var result = browser.Post("/api/v1/board_column/create", with => { with.HttpRequest(); with.Query("api_token", Jwt.FromUserId(user.id)); with.Query("name", boardColumnTitle); with.Query("board_guid", board.guid); with.Query("board_order", boardOrder); }).Result; Assert.AreEqual(HttpStatusCode.Created, result.StatusCode); var json = JObject.Parse(result.Body.AsString()); var guid = json["data"]["board_column"].Value <string>("guid") ?? ""; var createdBoardColumn = BoardColumnRepository.FindByGuid(guid); Assert.NotNull(createdBoardColumn); Assert.AreEqual(boardColumnTitle, createdBoardColumn.name); Assert.AreEqual(boardOrder, Convert.ToString(createdBoardColumn.board_order)); Assert.AreEqual( createdBoardColumn.guid, json["data"]["board_column"].Value <string>("guid") ?? "" ); }
public static CardModel UpdateAndRefresh(CardModel model, JObject data) { var column = BoardColumnRepository.FindByGuid(data.Value <string>("column_guid")); if (column != null) { model.column_id = column.id; } model.name = data.Value <string>("name") ?? model.name; model.column_order = data.Value <int?>("column_order") ?? model.column_order; model.description = data.Value <string>("description") ?? model.description; return(model.Save()); }
public CardController() { Get("/api/v1/card/get", _ => { var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameter("card_guid"), new ExistsInTable("card_guid", "cards", "guid") }); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } return(HttpResponse.Item("card", new CardTransformer().Transform( CardRepository.FindByGuid((string)Request.Query["card_guid"]) ))); }); Get("/api/v1/cards/get", _ => { var page = GetRequestInt("page"); page = page > 0 ? page : 1; var pageSize = 25; return(HttpResponse.Data(new JObject() { ["cards"] = new CardTransformer().Many( DL.Model.Card.Card.Paginate(page, pageSize) ), ["meta"] = new JObject() { ["pages_count"] = (DL.Model.Card.Card.Count() / pageSize) + 1, ["current_page"] = page } })); }); Get("/api/v1/project/cards/get", _ => { var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameter("project_guid"), new ExistsInTable("project_guid", "projects", "guid") }); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } var page = GetRequestInt("page"); page = page > 0 ? page : 1; var pageSize = 25; var project = ProjectRepository.FindByGuid(GetRequestStr("project_guid")); return(HttpResponse.Data(new JObject() { ["cards"] = new CardTransformer().Many(project.Cards(page, pageSize)), ["meta"] = new JObject() { ["pages_count"] = (project.CardsCount() / pageSize) + 1, ["current_page"] = page } })); }); Get("/api/v1/board_column/cards/get", _ => { var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameter("column_guid"), new ExistsInTable("column_guid", "board_columns", "guid") }); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } var column = BoardColumnRepository.FindByGuid(GetRequestStr("column_guid")); var page = GetRequestInt("page"); page = page > 0 ? page : 1; var pageSize = 25; return(HttpResponse.Data(new JObject() { ["cards"] = new CardTransformer().Many(column.Cards(page, pageSize)), ["meta"] = new JObject() { ["pages_count"] = (column.CardsCount() / pageSize) + 1, ["current_page"] = page } })); }); }
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 CardCrudController() { Post("/api/v1/card/create", _ => { var me = UserRepository.Find(CurrentRequest.UserId); var column = BoardColumnRepository.FindByGuid(GetRequestStr("column_guid")); var board = column.Board(); var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameters(new[] { "name", "column_guid" }), new ExistsInTable("column_guid", "board_columns", "guid"), new HasPermission(me, board.id, EntityType.Board) }, true); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } var description = (string)Request.Query["description"] ?? ""; int columnOrder = Request.Query["column_order"] ?? 0; var card = CardRepository.CreateAndGet( (string)Request.Query["name"], description, columnOrder, column, me ); return(HttpResponse.Item( "card", new CardTransformer().Transform(card), HttpStatusCode.Created )); }); Patch("/api/v1/card/edit", _ => { var me = UserRepository.Find(CurrentRequest.UserId); var card = CardRepository.FindByGuid(GetRequestStr("card_guid")); var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameters(new[] { "card_guid" }), new ExistsInTable("card_guid", "cards", "guid"), new HasPermission(me, card.id, EntityType.Card) }, true); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } card = CardRepository.UpdateAndRefresh(card, new JObject() { ["name"] = GetRequestStr("name"), ["description"] = GetRequestStr("description"), ["column_order"] = GetRequestStr("column_order"), ["column_guid"] = GetRequestStr("column_guid"), }); return(HttpResponse.Item("card", new CardTransformer().Transform(card))); }); Delete("/api/v1/card/delete", _ => { var me = UserRepository.Find(CurrentRequest.UserId); var card = CardRepository.FindByGuid(GetRequestStr("card_guid")); var errors = ValidationProcessor.Process(Request, new IValidatorRule[] { new ShouldHaveParameters(new[] { "card_guid" }), new ExistsInTable("card_guid", "cards", "guid"), new HasPermission(me, card.id, EntityType.Card) }, true); if (errors.Count > 0) { return(HttpResponse.Errors(errors)); } card.Delete(); return(HttpResponse.Item("card", new CardTransformer().Transform(card))); }); }