From 449a2049a677a8cc5f62997d28ba094cbbc0e435 Mon Sep 17 00:00:00 2001 From: omegacat Date: Wed, 7 Oct 2020 22:42:59 +0300 Subject: [PATCH 1/2] Add methods for working with columns; Add method for getting information about whole desk (its columns and cards); --- internal/handlers/columns.go | 42 +++++++++++ internal/handlers/common.go | 1 + internal/handlers/desks.go | 9 +-- internal/models/cards.go | 53 ++++++++++++-- internal/models/columns.go | 138 +++++++++++++++++++++++++++++++++++ internal/models/db.go | 4 +- internal/models/desks.go | 51 ++++++++++--- internal/services/desks.go | 39 ++++++++++ 8 files changed, 313 insertions(+), 24 deletions(-) create mode 100644 internal/handlers/columns.go create mode 100644 internal/models/columns.go create mode 100644 internal/services/desks.go diff --git a/internal/handlers/columns.go b/internal/handlers/columns.go new file mode 100644 index 0000000..fc187bb --- /dev/null +++ b/internal/handlers/columns.go @@ -0,0 +1,42 @@ +package handlers + +import ( + "encoding/json" + "log" + "min-desk-backend/internal/models" + "net/http" +) + +func initColumnsHandlers() { + router.HandleFunc("/columns", addColumn).Methods(http.MethodPost) + router.HandleFunc("/columns/{id}", deleteColumn).Methods(http.MethodDelete) +} + +func addColumn(w http.ResponseWriter, r *http.Request) { + log.Println("Got request addColumn") + encoder := json.NewEncoder(w) + var columnInitUpdate models.ColumnUpdate + err := json.NewDecoder(r.Body).Decode(&columnInitUpdate) + + if err != nil { + log.Println(err) + _ = encoder.Encode(&err) + } + columnId, err := models.AddColumnToDesk(columnInitUpdate) + if err != nil { + log.Println(err) + _ = encoder.Encode(&err) + } + err = encoder.Encode(&columnId) +} + +func deleteColumn(w http.ResponseWriter, r *http.Request) { + encoder := json.NewEncoder(w) + columnId := getObjectIdFromRequest(r) + log.Printf("Got request deleteColumn. Id: %s \n", columnId) + err := models.DeleteColumnFromDesk(columnId) + if err != nil { + log.Println(err) + _ = encoder.Encode(&err) + } +} diff --git a/internal/handlers/common.go b/internal/handlers/common.go index ce581a1..74feb68 100644 --- a/internal/handlers/common.go +++ b/internal/handlers/common.go @@ -9,6 +9,7 @@ func InitRouter() *mux.Router { initCardsHandlers() initDesksHandlers() + initColumnsHandlers() return router } diff --git a/internal/handlers/desks.go b/internal/handlers/desks.go index 70279d4..a4ef685 100644 --- a/internal/handlers/desks.go +++ b/internal/handlers/desks.go @@ -4,6 +4,7 @@ import ( "encoding/json" "log" "min-desk-backend/internal/models" + "min-desk-backend/internal/services" "net/http" ) @@ -34,12 +35,8 @@ func getDeskById(w http.ResponseWriter, r *http.Request) { log.Println("Got request getDeskById") encoder := json.NewEncoder(w) deskId := getObjectIdFromRequest(r) - desk, err := models.GetDeskById(deskId) - if err != nil { - log.Println(err) - _ = encoder.Encode(err) - } - err = encoder.Encode(desk) + deskInfo := services.GetDeskInfoByDeskId(deskId) + err := encoder.Encode(deskInfo) if err != nil { log.Println(err) _ = encoder.Encode(err) diff --git a/internal/models/cards.go b/internal/models/cards.go index 6f8ff50..b741a89 100644 --- a/internal/models/cards.go +++ b/internal/models/cards.go @@ -15,6 +15,7 @@ type Card struct { Description string `json:"description,omitempty"` AssignedTo string `json:"assignedTo,omitempty" bson:"assignedTo,omitempty"` DueDate primitive.DateTime `json:"dueDate,omitempty" bson:"dueDate,omitempty"` + ColumnId primitive.ObjectID `json:"columnId,omitempty" bson:"columnId,omitempty"` DeskId primitive.ObjectID `json:"deskId,omitempty" bson:"deskId,omitempty"` } @@ -23,12 +24,16 @@ type CardUpdate struct { Description string `json:"description,omitempty"` AssignedTo string `json:"assignedTo,omitempty" bson:"assignedTo,omitempty"` DueDate string `json:"dueDate,omitempty" bson:"dueDate,omitempty"` + ColumnId string `json:"columnId,omitempty" bson:"columnId,omitempty"` DeskId string `json:"deskId,omitempty" bson:"deskId,omitempty"` } var cardsCollectionName = "cards" var cardsCollection *mongo.Collection +var CardAddAction = "CARD_ADD" +var CardRemoveAction = "CARD_REMOVE" + func InitCardsCollection() { log.Println("Initialising CARDS collection...") cardsCollection = mongodb.Collection(cardsCollectionName) @@ -36,18 +41,18 @@ func InitCardsCollection() { } // If you change size of test cards - test it too in test/models/cards_test.go:17 -func AddTestCards(deskId primitive.ObjectID) { +func AddTestCards(columnId primitive.ObjectID, deskId primitive.ObjectID) { cardsCollection.DeleteMany(context.Background(), bson.D{}) - testCard1 := CardUpdate{"test name 1", "test description 1", "me1", "25-09-2020", deskId.Hex()} + testCard1 := CardUpdate{"test name 1", "test description 1", "me1", "25-09-2020", columnId.Hex(), deskId.Hex()} _, _ = AddCard(testCard1) - testCard2 := CardUpdate{"test name 2", "test description 2", "me2", "31-12-2020", deskId.Hex()} + testCard2 := CardUpdate{"test name 2", "test description 2", "me2", "31-12-2020", columnId.Hex(), deskId.Hex()} _, _ = AddCard(testCard2) - testCard3 := CardUpdate{"test name 3", "test description 3", "me3", "28-10-2020", deskId.Hex()} + testCard3 := CardUpdate{"test name 3", "test description 3", "me3", "28-10-2020", columnId.Hex(), deskId.Hex()} _, _ = AddCard(testCard3) - testCard4 := CardUpdate{"test name 4", "test description 4", "me4", "26-05-2021", deskId.Hex()} + testCard4 := CardUpdate{"test name 4", "test description 4", "me4", "26-05-2021", columnId.Hex(), deskId.Hex()} _, _ = AddCard(testCard4) } @@ -88,6 +93,24 @@ func GetAllCardsByDeskId(deskId primitive.ObjectID) []*Card { return cards } +func GetAllCardsByColumnId(columnId primitive.ObjectID) []*Card { + var cards []*Card + cursor, err := cardsCollection.Find(context.Background(), bson.D{{"columnId", columnId}}) + if err != nil { + log.Println(err) + } + for cursor.Next(context.Background()) { + card := Card{} + err := cursor.Decode(&card) + if err != nil { + log.Println(err) + } + cards = append(cards, &card) + } + + return cards +} + func GetCardById(cardId primitive.ObjectID) (Card, error) { var card Card err := cardsCollection.FindOne(context.Background(), bson.D{{"_id", cardId}}).Decode(&card) @@ -104,6 +127,7 @@ func AddCard(cardUpdate CardUpdate) (primitive.ObjectID, error) { card.Name = cardUpdate.Name card.Description = cardUpdate.Description card.AssignedTo = cardUpdate.AssignedTo + card.ColumnId, _ = primitive.ObjectIDFromHex(cardUpdate.ColumnId) card.DeskId, _ = primitive.ObjectIDFromHex(cardUpdate.DeskId) dueDate, err := time.Parse("02-01-2006", cardUpdate.DueDate) @@ -117,6 +141,9 @@ func AddCard(cardUpdate CardUpdate) (primitive.ObjectID, error) { log.Println(err) return cardId, err } + + addCardToColumn(cardId, card.ColumnId) + log.Println("Add card to columnId:" + card.ColumnId.Hex()) return cardId, err } @@ -142,6 +169,12 @@ func EditCard(cardId primitive.ObjectID, cardUpdate CardUpdate) (Card, error) { newDeskId, _ := primitive.ObjectIDFromHex(cardUpdate.DeskId) updatedFields = append(updatedFields, bson.E{Key: "deskId", Value: newDeskId}) } + if len(cardUpdate.ColumnId) != 0 { + newColumnId, _ := primitive.ObjectIDFromHex(cardUpdate.ColumnId) + updatedFields = append(updatedFields, bson.E{Key: "columnId", Value: newColumnId}) + removeCardFromColumn(cardId) + addCardToColumn(cardId, newColumnId) + } if len(updatedFields) == 0 { return GetCardById(cardId) } @@ -164,5 +197,15 @@ func DeleteCard(cardId primitive.ObjectID) error { if err != nil { log.Println(err) } + removeCardFromColumn(cardId) return err } + +func addCardToColumn(cardId primitive.ObjectID, columnId primitive.ObjectID) { + _ = UpdateColumnCards(columnId, cardId, CardAddAction) +} + +func removeCardFromColumn(cardId primitive.ObjectID) { + card, _ := GetCardById(cardId) + _ = UpdateColumnCards(card.ColumnId, cardId, CardRemoveAction) +} diff --git a/internal/models/columns.go b/internal/models/columns.go new file mode 100644 index 0000000..8e18b7a --- /dev/null +++ b/internal/models/columns.go @@ -0,0 +1,138 @@ +package models + +import ( + "context" + "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/bson/primitive" + "go.mongodb.org/mongo-driver/mongo" + "log" +) + +type Column struct { + Id primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"` + Name string `json:"name,omitempty"` + CardIds []primitive.ObjectID `json:"cardIds,omitempty" bson:"cardIds"` + DeskId primitive.ObjectID `json:"deskId,omitempty" bson:"deskId,omitempty"` +} + +type ColumnUpdate struct { + Name string `json:"name,omitempty"` + DeskId string `json:"deskId,omitempty"` +} + +var columnsCollectionName = "columns" +var columnsCollection *mongo.Collection + +var ColumnAddAction = "COLUMN_ADD" +var ColumnRemoveAction = "COLUMN_REMOVE" + +func InitColumnsCollection() { + log.Println("Initialising COLUMNS collection...") + columnsCollection = mongodb.Collection(columnsCollectionName) + log.Println("COLUMNS collection initialised...") +} + +func AddTestColumns(deskId primitive.ObjectID) primitive.ObjectID { + columnsCollection.DeleteMany(context.Background(), bson.D{}) + id, _ := AddColumnToDesk(ColumnUpdate{ + Name: "To do", + DeskId: deskId.Hex(), + }) + return id +} + +func getColumnById(id primitive.ObjectID) (Column, error) { + var column Column + err := columnsCollection.FindOne(context.Background(), bson.D{{"_id", id}}).Decode(&column) + if err != nil { + log.Println("Error with getting column by id: " + id.String()) + } + return column, err +} + +func GetColumnsByDeskId(deskId primitive.ObjectID) []Column { + desk, _ := GetDeskById(deskId) + var columns []Column + for _, columnId := range desk.ColumnIds { + column, _ := getColumnById(columnId) + columns = append(columns, column) + } + + return columns +} + +func AddColumnToDesk(update ColumnUpdate) (primitive.ObjectID, error) { + deskId, _ := primitive.ObjectIDFromHex(update.DeskId) + columnId, _ := addColumnToCollection(update.Name, deskId) + err := UpdateDeskColumns(deskId, columnId, ColumnAddAction) + return columnId, err +} + +func addColumnToCollection(name string, deskId primitive.ObjectID) (primitive.ObjectID, error) { + columnId := primitive.NewObjectID() + var column Column + column.Id = columnId + column.Name = name + column.DeskId = deskId + column.CardIds = []primitive.ObjectID{primitive.NewObjectID()} + column.CardIds = append(column.CardIds[:0], column.CardIds[1:]...) + + _, err := columnsCollection.InsertOne(context.Background(), column) + if err != nil { + log.Println(err) + } + + return columnId, err +} + +func DeleteColumnFromDesk(columnId primitive.ObjectID) error { + column, _ := getColumnById(columnId) + for _, cardId := range column.CardIds { + _ = DeleteCard(cardId) + } + deskId := column.DeskId + _ = deleteColumnFromCollection(columnId) + err := UpdateDeskColumns(deskId, columnId, ColumnRemoveAction) + return err +} + +func deleteColumnFromCollection(columnId primitive.ObjectID) error { + _, err := columnsCollection.DeleteOne(context.Background(), bson.D{{"_id", columnId}}) + if err != nil { + log.Println(err) + } + return err +} + +func UpdateColumnCards(columnId primitive.ObjectID, cardId primitive.ObjectID, action string) error { + var err error + log.Println("Update column cards " + columnId.Hex() + " " + cardId.Hex() + " " + action) + if action == CardAddAction { + err = addCardIdToColumn(cardId, columnId) + } else if action == CardRemoveAction { + err = removeCardIdFromColumn(cardId, columnId) + } + return err +} + +func addCardIdToColumn(cardId primitive.ObjectID, columnId primitive.ObjectID) error { + log.Println("Add card " + cardId.Hex() + " to column " + columnId.Hex()) + _, err := columnsCollection.UpdateOne( + context.Background(), + bson.M{"_id": columnId}, + bson.D{ + {"$push", bson.M{"cardIds": cardId}}, + }) + return err +} + +func removeCardIdFromColumn(cardId primitive.ObjectID, columnId primitive.ObjectID) error { + log.Println("Add card " + cardId.Hex() + " to column " + columnId.Hex()) + _, err := columnsCollection.UpdateOne( + context.Background(), + bson.M{"_id": columnId}, + bson.D{ + {"$pull", bson.M{"cardIds": cardId}}, + }) + return err +} diff --git a/internal/models/db.go b/internal/models/db.go index f16f0c6..4e171d8 100644 --- a/internal/models/db.go +++ b/internal/models/db.go @@ -30,9 +30,11 @@ func InitMongoDB(dataSource string) { // Init collections InitCardsCollection() + InitColumnsCollection() InitDesksCollection() // Init test data testDeskId := AddTestDesks()[0] - AddTestCards(testDeskId) + testColumnId := AddTestColumns(testDeskId) + AddTestCards(testColumnId, testDeskId) } diff --git a/internal/models/desks.go b/internal/models/desks.go index 57c963e..a3793ae 100644 --- a/internal/models/desks.go +++ b/internal/models/desks.go @@ -11,12 +11,14 @@ import ( ) type Desk struct { - Id primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"` - Name string `json:"name,omitempty"` + Id primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"` + Name string `json:"name,omitempty"` + ColumnIds []primitive.ObjectID `json:"columnIds,omitempty" bson:"columnIds"` } type DeskUpdate struct { - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty"` + ColumnId string `json:"columndId,omitempty"` } var desksCollectionName = "desks" @@ -40,6 +42,8 @@ func AddDesk(deskUpdate DeskUpdate) (primitive.ObjectID, error) { var desk Desk desk.Id = deskId desk.Name = deskUpdate.Name + desk.ColumnIds = []primitive.ObjectID{primitive.NewObjectID()} + desk.ColumnIds = append(desk.ColumnIds[:0], desk.ColumnIds[1:]...) _, err := desksCollection.InsertOne(context.Background(), desk) if err != nil { @@ -49,15 +53,6 @@ func AddDesk(deskUpdate DeskUpdate) (primitive.ObjectID, error) { return deskId, err } -func GetTestDesk() (Desk, error) { - var desk Desk - err := desksCollection.FindOne(context.Background(), bson.D{}).Decode(&desk) - if err != nil { - log.Println(err) - } - return desk, err -} - func GetAllDesks() ([]*Desk, error) { var desks []*Desk cursor, err := desksCollection.Find(context.Background(), bson.D{}) @@ -112,6 +107,16 @@ func EditDesk(deskId primitive.ObjectID, deskUpdate DeskUpdate) (Desk, error) { } } +func UpdateDeskColumns(deskId primitive.ObjectID, columnId primitive.ObjectID, action string) error { + var err error + if action == ColumnAddAction { + err = addColumnIdToDesk(columnId, deskId) + } else if action == ColumnRemoveAction { + err = removeColumnIdFromDesk(columnId, deskId) + } + return err +} + func DeleteDesk(deskId primitive.ObjectID) error { _, err := desksCollection.DeleteOne(context.Background(), bson.D{{"_id", deskId}}) if err != nil { @@ -119,3 +124,25 @@ func DeleteDesk(deskId primitive.ObjectID) error { } return err } + +func addColumnIdToDesk(columnId primitive.ObjectID, deskId primitive.ObjectID) error { + log.Println("Add column " + columnId.Hex() + " to desk " + deskId.Hex()) + _, err := desksCollection.UpdateOne( + context.Background(), + bson.M{"_id": deskId}, + bson.D{ + {"$push", bson.M{"columnIds": columnId}}, + }) + return err +} + +func removeColumnIdFromDesk(columnId primitive.ObjectID, deskId primitive.ObjectID) error { + log.Println("Add column " + columnId.Hex() + " to desk " + deskId.Hex()) + _, err := desksCollection.UpdateOne( + context.Background(), + bson.M{"_id": deskId}, + bson.D{ + {"$pull", bson.M{"columnIds": columnId}}, + }) + return err +} diff --git a/internal/services/desks.go b/internal/services/desks.go new file mode 100644 index 0000000..6e1bd14 --- /dev/null +++ b/internal/services/desks.go @@ -0,0 +1,39 @@ +package services + +import ( + "go.mongodb.org/mongo-driver/bson/primitive" + "min-desk-backend/internal/models" +) + +type DeskInfo struct { + Id primitive.ObjectID `json:"_id,omitempty"` + Name string `json:"name,omitempty"` + Columns []ColumnInfo `json:"columns,omitempty"` +} + +type ColumnInfo struct { + Id primitive.ObjectID `json:"_id,omitempty"` + Name string `json:"name,omitempty"` + Cards []*models.Card `json:"cards,omitempty"` +} + +func GetDeskInfoByDeskId(deskId primitive.ObjectID) DeskInfo { + desk, _ := models.GetDeskById(deskId) + var deskInfo DeskInfo + deskInfo.Id = desk.Id + deskInfo.Name = desk.Name + columns := models.GetColumnsByDeskId(desk.Id) + var columnInfos []ColumnInfo + for _, column := range columns { + cards := models.GetAllCardsByColumnId(column.Id) + columnInfo := ColumnInfo{ + Id: column.Id, + Name: column.Name, + Cards: cards, + } + columnInfos = append(columnInfos, columnInfo) + } + deskInfo.Columns = columnInfos + + return deskInfo +} From dd201f6f7d8520a2bf00e200ea74077610cd71ac Mon Sep 17 00:00:00 2001 From: omegacat Date: Wed, 7 Oct 2020 22:44:26 +0300 Subject: [PATCH 2/2] Add postman collection json-file; --- mindesk-postman-collection.json | 311 ++++++++++++++++++++++++++++++++ 1 file changed, 311 insertions(+) create mode 100644 mindesk-postman-collection.json diff --git a/mindesk-postman-collection.json b/mindesk-postman-collection.json new file mode 100644 index 0000000..5178e90 --- /dev/null +++ b/mindesk-postman-collection.json @@ -0,0 +1,311 @@ +{ + "info": { + "_postman_id": "095acef1-dba6-43d8-8490-5725e174e2e2", + "name": "MinDesk", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "Cards", + "item": [ + { + "name": "Add card", + "protocolProfileBehavior": { + "disabledSystemHeaders": {} + }, + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"name\" : \"Card name Ololo\",\n \"description\" : \"ololo test description\",\n \"dueDate\" : \"25-12-2020\",\n \"assignedTo\" : \"Vladi4ka1488\",\n \"deskId\" : \"5f68e7783635a89c202fdd94\",\n \"columnId\" : \"5f7e17d7ac66fb6534d9ca6e\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:8080/cards", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "cards" + ] + } + }, + "response": [] + }, + { + "name": "Get cards", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/cards", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "cards" + ] + } + }, + "response": [] + }, + { + "name": "Get cards by deskId", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/cards/5f68e7783635a89c202fdd94", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "cards", + "5f68e7783635a89c202fdd94" + ] + } + }, + "response": [] + }, + { + "name": "Delete card", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "http://localhost:8080/cards/5f6537cb56dc2bcffd649bca", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "cards", + "5f6537cb56dc2bcffd649bca" + ] + } + }, + "response": [] + }, + { + "name": "Edit card", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"name\" : \"updated name1\",\n \"description\" : \"1 test description\",\n \"dueDate\" : \"22-10-2020\",\n \"assignedTo\" : \"1 123123123 1\",\n \"columnId\" : \"5f7e191cac66fb6534d9ca73\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:8080/cards/5f7e1701ac66fb6534d9ca6a", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "cards", + "5f7e1701ac66fb6534d9ca6a" + ] + } + }, + "response": [] + } + ], + "protocolProfileBehavior": {} + }, + { + "name": "Desks", + "item": [ + { + "name": "Get all desks", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/desks", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "desks" + ] + } + }, + "response": [] + }, + { + "name": "Get Desk Info", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/desks/5f7e1701ac66fb6534d9ca66", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "desks", + "5f7e1701ac66fb6534d9ca66" + ] + } + }, + "response": [] + }, + { + "name": "Add desk", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"name\" : \"test desk №2\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:8080/desks", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "desks" + ] + } + }, + "response": [] + }, + { + "name": "Delete desk", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "http://localhost:8080/desks/5f66540e27d138817eb90a4a", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "desks", + "5f66540e27d138817eb90a4a" + ] + } + }, + "response": [] + }, + { + "name": "Edit desk", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"name\" : \"test desk updated 1\",\n \"backgroubnd\" : \"123\",\n \"asd\" : \"123\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:8080/desks/5f66547427d138817eb90a4b", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "desks", + "5f66547427d138817eb90a4b" + ] + } + }, + "response": [] + } + ], + "protocolProfileBehavior": {} + }, + { + "name": "Columns", + "item": [ + { + "name": "Add column to desk", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"name\" : \"In progress\",\n \"deskId\" : \"5f7e1701ac66fb6534d9ca66\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:8080/columns", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "columns" + ] + } + }, + "response": [] + }, + { + "name": "Delete column", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "http://localhost:8080/columns/5f7e17d7ac66fb6534d9ca6e", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "columns", + "5f7e17d7ac66fb6534d9ca6e" + ] + } + }, + "response": [] + } + ], + "protocolProfileBehavior": {} + } + ], + "protocolProfileBehavior": {} +} \ No newline at end of file