feat:#94 added delete api and tests

This commit is contained in:
masterElmar
2023-12-03 18:29:23 +01:00
parent 78f84a140f
commit c871eb469c
5 changed files with 100 additions and 0 deletions

View File

@@ -1,6 +1,8 @@
package db
import (
"errors"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/daos"
"github.com/pocketbase/pocketbase/models"
@@ -39,6 +41,25 @@ func FindFeedByToken(token string, app *pocketbase.PocketBase) (*model.Feed, err
return &feed, err
}
func DeleteFeed(db *daos.Dao, feedId string) error {
sqlResult, err := db.DB().Delete("feeds", dbx.NewExp("id = {:id}", dbx.Params{"id": feedId})).Execute()
var deletedRows int64
if sqlResult != nil {
deletedRows, _ = sqlResult.RowsAffected()
}
if err != nil {
return err
} else {
if deletedRows == 0 {
return errors.New("No feed with id " + feedId + " found")
} else {
return nil
}
}
}
func GetAllFeeds(db *daos.Dao) ([]model.Feed, error) {
var feeds []model.Feed
err := db.DB().Select("*").From("feeds").All(&feeds)

View File

@@ -0,0 +1,55 @@
package db
import (
"github.com/pocketbase/pocketbase/daos"
"github.com/pocketbase/pocketbase/tests"
"testing"
)
const testDataDir = "./mockData"
func TestDeleteFeed(t *testing.T) {
setupTestApp := func(t *testing.T) *daos.Dao {
testApp, err := tests.NewTestApp(testDataDir)
if err != nil {
t.Fatal(err)
}
dao := daos.New(testApp.Dao().DB())
return dao
}
type args struct {
db *daos.Dao
feedId string
}
testsCases := []struct {
name string
args args
wantErr bool
}{
{
name: "TestDeleteFeed",
args: args{
db: setupTestApp(t),
feedId: "fkoqti06ohlnsb8",
},
wantErr: false,
},
{
name: "TestDeleteFeedNotExisting",
args: args{
db: setupTestApp(t),
feedId: "test324",
},
wantErr: true,
},
}
for _, tt := range testsCases {
t.Run(tt.name, func(t *testing.T) {
if err := DeleteFeed(tt.args.db, tt.args.feedId); (err != nil) != tt.wantErr {
t.Errorf("DeleteFeed() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}

Binary file not shown.

Binary file not shown.