From 718d726eab91e18637926c002f868e9761dfcda7 Mon Sep 17 00:00:00 2001 From: Roland Osborne Date: Fri, 21 Jan 2022 00:39:43 -0800 Subject: [PATCH] retrieving pending card in test --- net/server/internal/api_contact.go | 5 --- net/server/internal/api_getCard.go | 32 ++++++++++++++++++++ net/server/internal/api_setOpenMessage.go | 6 ++-- net/server/internal/ucConnectContact_test.go | 13 ++++++-- 4 files changed, 46 insertions(+), 10 deletions(-) create mode 100644 net/server/internal/api_getCard.go diff --git a/net/server/internal/api_contact.go b/net/server/internal/api_contact.go index 20e553ae..54ff93a0 100644 --- a/net/server/internal/api_contact.go +++ b/net/server/internal/api_contact.go @@ -23,11 +23,6 @@ func ClearCardNotes(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) } -func GetCard(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "application/json; charset=UTF-8") - w.WriteHeader(http.StatusOK) -} - func GetCardData(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json; charset=UTF-8") w.WriteHeader(http.StatusOK) diff --git a/net/server/internal/api_getCard.go b/net/server/internal/api_getCard.go new file mode 100644 index 00000000..bbb4022f --- /dev/null +++ b/net/server/internal/api_getCard.go @@ -0,0 +1,32 @@ +package databag + +import ( + "errors" + "net/http" + "gorm.io/gorm" + "github.com/gorilla/mux" + "databag/internal/store" +) + +func GetCard(w http.ResponseWriter, r *http.Request) { + + account, code, err := BearerAppToken(r, false); + if err != nil { + ErrResponse(w, code, err) + return + } + cardId := mux.Vars(r)["cardId"] + + var card store.Card + if err := store.DB.Where("account_id = ? AND card_id = ?", account.ID, cardId).First(&card).Error; err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + ErrResponse(w, http.StatusNotFound, err) + } else { + ErrResponse(w, http.StatusInternalServerError, err) + } + return + } + + WriteResponse(w, getCardModel(&card)) +} + diff --git a/net/server/internal/api_setOpenMessage.go b/net/server/internal/api_setOpenMessage.go index c42e5326..6eee7d57 100644 --- a/net/server/internal/api_setOpenMessage.go +++ b/net/server/internal/api_setOpenMessage.go @@ -31,10 +31,10 @@ func SetOpenMessage(w http.ResponseWriter, r *http.Request) { // load referenced account var account store.Account if err := store.DB.Where("guid = ?", connect.Contact).First(&account).Error; err != nil { - if !errors.Is(err, gorm.ErrRecordNotFound) { - ErrResponse(w, http.StatusInternalServerError, err) - } else { + if errors.Is(err, gorm.ErrRecordNotFound) { ErrResponse(w, http.StatusNotFound, err) + } else { + ErrResponse(w, http.StatusInternalServerError, err) } return } diff --git a/net/server/internal/ucConnectContact_test.go b/net/server/internal/ucConnectContact_test.go index b06390d7..629fa45e 100644 --- a/net/server/internal/ucConnectContact_test.go +++ b/net/server/internal/ucConnectContact_test.go @@ -74,13 +74,22 @@ func TestConnectContact(t *testing.T) { assert.NoError(t, ReadResponse(w, &contactStatus)) // get view of cards in A - r, w, _ = NewRequest("GET", "/contact/card/view", nil) + r, w, _ = NewRequest("GET", "/contact/cards/view", nil) SetBearerAuth(r, access[0]) GetCardView(w, r) var views []CardView assert.NoError(t, ReadResponse(w, &views)) + assert.Equal(t, len(views), 1) -PrintMsg(views); + // get B card in A + r, w, _ = NewRequest("GET", "/contact/cards/{cardId}", nil) + vars = map[string]string{ "cardId": views[0].CardId } + r = mux.SetURLVars(r, vars) + SetBearerAuth(r, access[0]) + GetCard(w, r) + assert.NoError(t, ReadResponse(w, &card)) + +PrintMsg(card); // get new card