Decouples routers and adds auth for plans and actions call
All checks were successful
gitea-deepak/gogmagog/pipeline/head This commit looks good
All checks were successful
gitea-deepak/gogmagog/pipeline/head This commit looks good
This commit is contained in:
parent
ab1dab6619
commit
417a7cf982
@ -9,7 +9,8 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newActionRouter(m *models.Model) http.Handler {
|
// NewActionRouter returns a new action router
|
||||||
|
func NewActionRouter(m *models.Model) http.Handler {
|
||||||
router := chi.NewRouter()
|
router := chi.NewRouter()
|
||||||
router.Get("/", getActionsFunc(m))
|
router.Get("/", getActionsFunc(m))
|
||||||
router.Post("/", postActionFunc(m))
|
router.Post("/", postActionFunc(m))
|
||||||
|
@ -3,7 +3,6 @@ package routes_test
|
|||||||
import (
|
import (
|
||||||
"gitea.deepak.science/deepak/gogmagog/models"
|
"gitea.deepak.science/deepak/gogmagog/models"
|
||||||
"gitea.deepak.science/deepak/gogmagog/routes"
|
"gitea.deepak.science/deepak/gogmagog/routes"
|
||||||
"gitea.deepak.science/deepak/gogmagog/tokens"
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
@ -16,8 +15,8 @@ func TestEmptyActions(t *testing.T) {
|
|||||||
// set up
|
// set up
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
m := getEmptyModel()
|
m := getEmptyModel()
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/actions", nil)
|
req, _ := http.NewRequest("GET", "/", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -42,8 +41,8 @@ func TestOneAction(t *testing.T) {
|
|||||||
completedDate, _ := time.Parse("2006-01-02", "2021-01-03")
|
completedDate, _ := time.Parse("2006-01-02", "2021-01-03")
|
||||||
a1 := &models.Action{ActionID: 3, ActionDescription: "testing", CompletedChunks: 1, CompletedOn: &completedDate, CreatedAt: &createdDate, UpdatedAt: &updatedDate, EstimatedChunks: 3, PlanID: 0}
|
a1 := &models.Action{ActionID: 3, ActionDescription: "testing", CompletedChunks: 1, CompletedOn: &completedDate, CreatedAt: &createdDate, UpdatedAt: &updatedDate, EstimatedChunks: 3, PlanID: 0}
|
||||||
m := getModel([]*models.Plan{}, []*models.Action{a1})
|
m := getModel([]*models.Plan{}, []*models.Action{a1})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/actions", nil)
|
req, _ := http.NewRequest("GET", "/", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -77,8 +76,8 @@ func TestErrorAction(t *testing.T) {
|
|||||||
|
|
||||||
m := getErrorModel("Model always errors")
|
m := getErrorModel("Model always errors")
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/actions", nil)
|
req, _ := http.NewRequest("GET", "/", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -99,8 +98,8 @@ func TestEmptyActionErrorWriter(t *testing.T) {
|
|||||||
|
|
||||||
m := getEmptyModel()
|
m := getEmptyModel()
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/actions", nil)
|
req, _ := http.NewRequest("GET", "/", nil)
|
||||||
|
|
||||||
rr := NewBadWriter()
|
rr := NewBadWriter()
|
||||||
|
|
||||||
@ -120,8 +119,8 @@ func TestOneActionByID(t *testing.T) {
|
|||||||
updatedDate, _ := time.Parse("2006-01-02", "2021-01-02")
|
updatedDate, _ := time.Parse("2006-01-02", "2021-01-02")
|
||||||
a := &models.Action{ActionID: 6, ActionDescription: "howdy", CompletedOn: nil, CreatedAt: &createdDate, UpdatedAt: &updatedDate, CompletedChunks: 0, EstimatedChunks: 54, PlanID: 3}
|
a := &models.Action{ActionID: 6, ActionDescription: "howdy", CompletedOn: nil, CreatedAt: &createdDate, UpdatedAt: &updatedDate, CompletedChunks: 0, EstimatedChunks: 54, PlanID: 3}
|
||||||
m := getModel([]*models.Plan{}, []*models.Action{a})
|
m := getModel([]*models.Plan{}, []*models.Action{a})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/actions/6", nil)
|
req, _ := http.NewRequest("GET", "/6", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -152,8 +151,8 @@ func TestErrorActionByID(t *testing.T) {
|
|||||||
|
|
||||||
m := getErrorModel("Model always errors")
|
m := getErrorModel("Model always errors")
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/actions/5", nil)
|
req, _ := http.NewRequest("GET", "/5", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -175,8 +174,8 @@ func TestEmptyActionErrorWriterByID(t *testing.T) {
|
|||||||
a := &models.Action{ActionID: 6}
|
a := &models.Action{ActionID: 6}
|
||||||
m := getModel([]*models.Plan{}, []*models.Action{a})
|
m := getModel([]*models.Plan{}, []*models.Action{a})
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/actions/6", nil)
|
req, _ := http.NewRequest("GET", "/6", nil)
|
||||||
|
|
||||||
rr := NewBadWriter()
|
rr := NewBadWriter()
|
||||||
|
|
||||||
@ -195,8 +194,8 @@ func TestNotFoundActionByIDText(t *testing.T) {
|
|||||||
|
|
||||||
m := getEmptyModel()
|
m := getEmptyModel()
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/actions/wo", nil)
|
req, _ := http.NewRequest("GET", "/wo", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -214,8 +213,8 @@ func TestNotFoundActionByIDEmpty(t *testing.T) {
|
|||||||
|
|
||||||
m := getEmptyModel()
|
m := getEmptyModel()
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/actions/1", nil)
|
req, _ := http.NewRequest("GET", "/1", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -235,8 +234,8 @@ func TestActionsByPlanID(t *testing.T) {
|
|||||||
updatedDate, _ := time.Parse("2006-01-02", "2021-01-02")
|
updatedDate, _ := time.Parse("2006-01-02", "2021-01-02")
|
||||||
a := &models.Action{ActionID: 6, ActionDescription: "howdy", CompletedOn: nil, CreatedAt: &createdDate, UpdatedAt: &updatedDate, CompletedChunks: 0, EstimatedChunks: 54, PlanID: 3}
|
a := &models.Action{ActionID: 6, ActionDescription: "howdy", CompletedOn: nil, CreatedAt: &createdDate, UpdatedAt: &updatedDate, CompletedChunks: 0, EstimatedChunks: 54, PlanID: 3}
|
||||||
m := getModel([]*models.Plan{}, []*models.Action{a})
|
m := getModel([]*models.Plan{}, []*models.Action{a})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/actions?plan_id=6", nil)
|
req, _ := http.NewRequest("GET", "/?plan_id=6", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -270,8 +269,8 @@ func TestActionsByPlanIDInvalidID(t *testing.T) {
|
|||||||
updatedDate, _ := time.Parse("2006-01-02", "2021-01-02")
|
updatedDate, _ := time.Parse("2006-01-02", "2021-01-02")
|
||||||
a := &models.Action{ActionID: 6, ActionDescription: "howdy", CompletedOn: nil, CreatedAt: &createdDate, UpdatedAt: &updatedDate, CompletedChunks: 0, EstimatedChunks: 54, PlanID: 3}
|
a := &models.Action{ActionID: 6, ActionDescription: "howdy", CompletedOn: nil, CreatedAt: &createdDate, UpdatedAt: &updatedDate, CompletedChunks: 0, EstimatedChunks: 54, PlanID: 3}
|
||||||
m := getModel([]*models.Plan{}, []*models.Action{a})
|
m := getModel([]*models.Plan{}, []*models.Action{a})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/actions?plan_id=aoeu", nil)
|
req, _ := http.NewRequest("GET", "/?plan_id=aoeu", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
|
@ -9,7 +9,8 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newPlanRouter(m *models.Model) http.Handler {
|
// NewPlanRouter returns the http.Handler for the passed in model to route plan methods.
|
||||||
|
func NewPlanRouter(m *models.Model) http.Handler {
|
||||||
router := chi.NewRouter()
|
router := chi.NewRouter()
|
||||||
router.Get("/", getAllPlansFunc(m))
|
router.Get("/", getAllPlansFunc(m))
|
||||||
router.Post("/", postPlanFunc(m))
|
router.Post("/", postPlanFunc(m))
|
||||||
|
@ -3,7 +3,6 @@ package routes_test
|
|||||||
import (
|
import (
|
||||||
"gitea.deepak.science/deepak/gogmagog/models"
|
"gitea.deepak.science/deepak/gogmagog/models"
|
||||||
"gitea.deepak.science/deepak/gogmagog/routes"
|
"gitea.deepak.science/deepak/gogmagog/routes"
|
||||||
"gitea.deepak.science/deepak/gogmagog/tokens"
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
@ -16,8 +15,8 @@ func TestEmptyPlans(t *testing.T) {
|
|||||||
// set up
|
// set up
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
m := getEmptyModel()
|
m := getEmptyModel()
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/plans", nil)
|
req, _ := http.NewRequest("GET", "/", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -40,8 +39,8 @@ func TestOnePlan(t *testing.T) {
|
|||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
m := getModel([]*models.Plan{p}, []*models.Action{})
|
m := getModel([]*models.Plan{p}, []*models.Action{})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/plans", nil)
|
req, _ := http.NewRequest("GET", "/", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -69,8 +68,8 @@ func TestErrorPlan(t *testing.T) {
|
|||||||
|
|
||||||
m := getErrorModel("Model always errors")
|
m := getErrorModel("Model always errors")
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/plans", nil)
|
req, _ := http.NewRequest("GET", "/", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -91,8 +90,8 @@ func TestEmptyPlanErrorWriter(t *testing.T) {
|
|||||||
|
|
||||||
m := getEmptyModel()
|
m := getEmptyModel()
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/plans", nil)
|
req, _ := http.NewRequest("GET", "/", nil)
|
||||||
|
|
||||||
rr := NewBadWriter()
|
rr := NewBadWriter()
|
||||||
|
|
||||||
@ -111,8 +110,8 @@ func TestOnePlanByID(t *testing.T) {
|
|||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
m := getModel([]*models.Plan{p}, []*models.Action{})
|
m := getModel([]*models.Plan{p}, []*models.Action{})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/plans/6", nil)
|
req, _ := http.NewRequest("GET", "/6", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -138,8 +137,8 @@ func TestErrorPlanByID(t *testing.T) {
|
|||||||
|
|
||||||
m := getErrorModel("Model always errors")
|
m := getErrorModel("Model always errors")
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/plans/5", nil)
|
req, _ := http.NewRequest("GET", "/5", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -162,8 +161,8 @@ func TestEmptyPlanErrorWriterByID(t *testing.T) {
|
|||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
m := getModel([]*models.Plan{p}, []*models.Action{})
|
m := getModel([]*models.Plan{p}, []*models.Action{})
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/plans/6", nil)
|
req, _ := http.NewRequest("GET", "/6", nil)
|
||||||
|
|
||||||
rr := NewBadWriter()
|
rr := NewBadWriter()
|
||||||
|
|
||||||
@ -182,8 +181,8 @@ func TestNotFoundPlanByIDText(t *testing.T) {
|
|||||||
|
|
||||||
m := getEmptyModel()
|
m := getEmptyModel()
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/plans/wo", nil)
|
req, _ := http.NewRequest("GET", "/wo", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -201,8 +200,8 @@ func TestNotFoundPlanByIDEmpty(t *testing.T) {
|
|||||||
|
|
||||||
m := getEmptyModel()
|
m := getEmptyModel()
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
req, _ := http.NewRequest("GET", "/plans/1", nil)
|
req, _ := http.NewRequest("GET", "/1", nil)
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
|
@ -5,7 +5,6 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"gitea.deepak.science/deepak/gogmagog/models"
|
"gitea.deepak.science/deepak/gogmagog/models"
|
||||||
"gitea.deepak.science/deepak/gogmagog/routes"
|
"gitea.deepak.science/deepak/gogmagog/routes"
|
||||||
"gitea.deepak.science/deepak/gogmagog/tokens"
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
@ -26,7 +25,7 @@ func TestPureJSONPostAction(t *testing.T) {
|
|||||||
ActionDescription: "here's an action",
|
ActionDescription: "here's an action",
|
||||||
}
|
}
|
||||||
m := getModel([]*models.Plan{}, []*models.Action{a})
|
m := getModel([]*models.Plan{}, []*models.Action{a})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
data := []byte(`{
|
data := []byte(`{
|
||||||
"action_description": "here's an action",
|
"action_description": "here's an action",
|
||||||
"estimated_chunks": 3,
|
"estimated_chunks": 3,
|
||||||
@ -34,7 +33,7 @@ func TestPureJSONPostAction(t *testing.T) {
|
|||||||
"completed_on": "2021-01-01T00:00:00Z",
|
"completed_on": "2021-01-01T00:00:00Z",
|
||||||
"plan_id": 5
|
"plan_id": 5
|
||||||
}`)
|
}`)
|
||||||
req, _ := http.NewRequest("POST", "/actions", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("POST", "/", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -67,13 +66,13 @@ func TestExtraFieldActionPostJSON(t *testing.T) {
|
|||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
m := getModel([]*models.Plan{p}, []*models.Action{})
|
m := getModel([]*models.Plan{p}, []*models.Action{})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
data := []byte(`{
|
data := []byte(`{
|
||||||
"completed_on": "2021-01-01T00:00:00Z",
|
"completed_on": "2021-01-01T00:00:00Z",
|
||||||
"plan_id": 5,
|
"plan_id": 5,
|
||||||
"sabotage": "omg"
|
"sabotage": "omg"
|
||||||
}`)
|
}`)
|
||||||
req, _ := http.NewRequest("POST", "/actions", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("POST", "/", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -93,9 +92,9 @@ func TestEmptyBodyActionPost(t *testing.T) {
|
|||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
m := getModel([]*models.Plan{p}, []*models.Action{})
|
m := getModel([]*models.Plan{p}, []*models.Action{})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
data := []byte(``)
|
data := []byte(``)
|
||||||
req, _ := http.NewRequest("POST", "/actions", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("POST", "/", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -116,13 +115,13 @@ func TestTwoBodyActionPost(t *testing.T) {
|
|||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
m := getModel([]*models.Plan{p}, []*models.Action{})
|
m := getModel([]*models.Plan{p}, []*models.Action{})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
data := []byte(`{
|
data := []byte(`{
|
||||||
"plan_id": 5
|
"plan_id": 5
|
||||||
}, {
|
}, {
|
||||||
"plan_id": 6
|
"plan_id": 6
|
||||||
}`)
|
}`)
|
||||||
req, _ := http.NewRequest("POST", "/actions", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("POST", "/", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -143,10 +142,10 @@ func TestErrorCreateAction(t *testing.T) {
|
|||||||
|
|
||||||
m := getErrorModel("Model always errors")
|
m := getErrorModel("Model always errors")
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
a := &models.Action{PlanID: 6}
|
a := &models.Action{PlanID: 6}
|
||||||
data, _ := json.Marshal(a)
|
data, _ := json.Marshal(a)
|
||||||
req, _ := http.NewRequest("POST", "/actions", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("POST", "/", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -168,10 +167,10 @@ func TestErrorOnRetrieveCreateAction(t *testing.T) {
|
|||||||
|
|
||||||
m := getErrorOnGetModel("Model always errors")
|
m := getErrorOnGetModel("Model always errors")
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
a := &models.Action{PlanID: 6}
|
a := &models.Action{PlanID: 6}
|
||||||
data, _ := json.Marshal(a)
|
data, _ := json.Marshal(a)
|
||||||
req, _ := http.NewRequest("POST", "/actions", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("POST", "/", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -193,9 +192,9 @@ func TestErrorWriterCreateAction(t *testing.T) {
|
|||||||
a := &models.Action{PlanID: 6}
|
a := &models.Action{PlanID: 6}
|
||||||
m := getModel([]*models.Plan{}, []*models.Action{a})
|
m := getModel([]*models.Plan{}, []*models.Action{a})
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
data, _ := json.Marshal(a)
|
data, _ := json.Marshal(a)
|
||||||
req, _ := http.NewRequest("POST", "/actions", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("POST", "/", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := NewBadWriter()
|
rr := NewBadWriter()
|
||||||
|
@ -5,7 +5,6 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"gitea.deepak.science/deepak/gogmagog/models"
|
"gitea.deepak.science/deepak/gogmagog/models"
|
||||||
"gitea.deepak.science/deepak/gogmagog/routes"
|
"gitea.deepak.science/deepak/gogmagog/routes"
|
||||||
"gitea.deepak.science/deepak/gogmagog/tokens"
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
@ -20,9 +19,9 @@ func TestCreatePlanRoute(t *testing.T) {
|
|||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
m := getModel([]*models.Plan{p}, []*models.Action{})
|
m := getModel([]*models.Plan{p}, []*models.Action{})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
data, _ := json.Marshal(p)
|
data, _ := json.Marshal(p)
|
||||||
req, _ := http.NewRequest("POST", "/plans", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("POST", "/", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -51,12 +50,12 @@ func TestPureJSON(t *testing.T) {
|
|||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
m := getModel([]*models.Plan{p}, []*models.Action{})
|
m := getModel([]*models.Plan{p}, []*models.Action{})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
data := []byte(`{
|
data := []byte(`{
|
||||||
"plan_date": "2021-01-01T00:00:00Z",
|
"plan_date": "2021-01-01T00:00:00Z",
|
||||||
"plan_id": 5
|
"plan_id": 5
|
||||||
}`)
|
}`)
|
||||||
req, _ := http.NewRequest("POST", "/plans", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("POST", "/", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -85,13 +84,13 @@ func TestExtraFieldJSON(t *testing.T) {
|
|||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
m := getModel([]*models.Plan{p}, []*models.Action{})
|
m := getModel([]*models.Plan{p}, []*models.Action{})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
data := []byte(`{
|
data := []byte(`{
|
||||||
"plan_date": "2021-01-01T00:00:00Z",
|
"plan_date": "2021-01-01T00:00:00Z",
|
||||||
"plan_id": 5,
|
"plan_id": 5,
|
||||||
"plan_sabotage": "omg"
|
"plan_sabotage": "omg"
|
||||||
}`)
|
}`)
|
||||||
req, _ := http.NewRequest("POST", "/plans", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("POST", "/", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -111,9 +110,9 @@ func TestEmptyBody(t *testing.T) {
|
|||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
m := getModel([]*models.Plan{p}, []*models.Action{})
|
m := getModel([]*models.Plan{p}, []*models.Action{})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
data := []byte(``)
|
data := []byte(``)
|
||||||
req, _ := http.NewRequest("POST", "/plans", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("POST", "/", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -134,7 +133,7 @@ func TestTwoBody(t *testing.T) {
|
|||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
m := getModel([]*models.Plan{p}, []*models.Action{})
|
m := getModel([]*models.Plan{p}, []*models.Action{})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
data := []byte(`{
|
data := []byte(`{
|
||||||
"plan_date": "2021-01-01T00:00:00Z",
|
"plan_date": "2021-01-01T00:00:00Z",
|
||||||
"plan_id": 5
|
"plan_id": 5
|
||||||
@ -142,7 +141,7 @@ func TestTwoBody(t *testing.T) {
|
|||||||
"plan_date": "2021-01-01T00:00:00Z",
|
"plan_date": "2021-01-01T00:00:00Z",
|
||||||
"plan_id": 6
|
"plan_id": 6
|
||||||
}`)
|
}`)
|
||||||
req, _ := http.NewRequest("POST", "/plans", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("POST", "/", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -163,11 +162,11 @@ func TestErrorCreatePlan(t *testing.T) {
|
|||||||
|
|
||||||
m := getErrorModel("Model always errors")
|
m := getErrorModel("Model always errors")
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
data, _ := json.Marshal(p)
|
data, _ := json.Marshal(p)
|
||||||
req, _ := http.NewRequest("POST", "/plans", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("POST", "/", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -189,11 +188,11 @@ func TestErrorOnRetrieveCreatePlan(t *testing.T) {
|
|||||||
|
|
||||||
m := getErrorOnGetModel("Model always errors")
|
m := getErrorOnGetModel("Model always errors")
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
data, _ := json.Marshal(p)
|
data, _ := json.Marshal(p)
|
||||||
req, _ := http.NewRequest("POST", "/plans", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("POST", "/", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -216,9 +215,9 @@ func TestErrorWriterCreatePlan(t *testing.T) {
|
|||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
m := getModel([]*models.Plan{p}, []*models.Action{})
|
m := getModel([]*models.Plan{p}, []*models.Action{})
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewPlanRouter(m)
|
||||||
data, _ := json.Marshal(p)
|
data, _ := json.Marshal(p)
|
||||||
req, _ := http.NewRequest("POST", "/plans", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("POST", "/", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := NewBadWriter()
|
rr := NewBadWriter()
|
||||||
|
@ -5,7 +5,6 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"gitea.deepak.science/deepak/gogmagog/models"
|
"gitea.deepak.science/deepak/gogmagog/models"
|
||||||
"gitea.deepak.science/deepak/gogmagog/routes"
|
"gitea.deepak.science/deepak/gogmagog/routes"
|
||||||
"gitea.deepak.science/deepak/gogmagog/tokens"
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
@ -26,7 +25,7 @@ func TestPureJSONPutAction(t *testing.T) {
|
|||||||
ActionDescription: "here's an action",
|
ActionDescription: "here's an action",
|
||||||
}
|
}
|
||||||
m := getModel([]*models.Plan{}, []*models.Action{a})
|
m := getModel([]*models.Plan{}, []*models.Action{a})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
data := []byte(`{
|
data := []byte(`{
|
||||||
"action_description": "here's an action",
|
"action_description": "here's an action",
|
||||||
"estimated_chunks": 3,
|
"estimated_chunks": 3,
|
||||||
@ -34,7 +33,7 @@ func TestPureJSONPutAction(t *testing.T) {
|
|||||||
"completed_on": "2021-01-01T00:00:00Z",
|
"completed_on": "2021-01-01T00:00:00Z",
|
||||||
"plan_id": 5
|
"plan_id": 5
|
||||||
}`)
|
}`)
|
||||||
req, _ := http.NewRequest("PUT", "/actions/0", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("PUT", "/0", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -67,13 +66,13 @@ func TestExtraFieldActionPutJSON(t *testing.T) {
|
|||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
m := getModel([]*models.Plan{p}, []*models.Action{})
|
m := getModel([]*models.Plan{p}, []*models.Action{})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
data := []byte(`{
|
data := []byte(`{
|
||||||
"completed_on": "2021-01-01T00:00:00Z",
|
"completed_on": "2021-01-01T00:00:00Z",
|
||||||
"plan_id": 5,
|
"plan_id": 5,
|
||||||
"sabotage": "omg"
|
"sabotage": "omg"
|
||||||
}`)
|
}`)
|
||||||
req, _ := http.NewRequest("PUT", "/actions/1", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("PUT", "/1", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -93,9 +92,9 @@ func TestEmptyBodyActionPut(t *testing.T) {
|
|||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
m := getModel([]*models.Plan{p}, []*models.Action{})
|
m := getModel([]*models.Plan{p}, []*models.Action{})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
data := []byte(``)
|
data := []byte(``)
|
||||||
req, _ := http.NewRequest("PUT", "/actions/1", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("PUT", "/1", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -116,13 +115,13 @@ func TestTwoBodyActionPut(t *testing.T) {
|
|||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
m := getModel([]*models.Plan{p}, []*models.Action{})
|
m := getModel([]*models.Plan{p}, []*models.Action{})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
data := []byte(`{
|
data := []byte(`{
|
||||||
"plan_id": 5
|
"plan_id": 5
|
||||||
}, {
|
}, {
|
||||||
"plan_id": 6
|
"plan_id": 6
|
||||||
}`)
|
}`)
|
||||||
req, _ := http.NewRequest("PUT", "/actions/1", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("PUT", "/1", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -143,13 +142,13 @@ func TestBadActionIDPut(t *testing.T) {
|
|||||||
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
planDate, _ := time.Parse("2006-01-02", "2021-01-01")
|
||||||
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
p := &models.Plan{PlanID: 6, PlanDate: &planDate}
|
||||||
m := getModel([]*models.Plan{p}, []*models.Action{})
|
m := getModel([]*models.Plan{p}, []*models.Action{})
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
data := []byte(`{
|
data := []byte(`{
|
||||||
"plan_id": 5
|
"plan_id": 5
|
||||||
}, {
|
}, {
|
||||||
"plan_id": 6
|
"plan_id": 6
|
||||||
}`)
|
}`)
|
||||||
req, _ := http.NewRequest("PUT", "/actions/text", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("PUT", "/text", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -170,10 +169,10 @@ func TestErrorUpdateAction(t *testing.T) {
|
|||||||
|
|
||||||
m := getErrorModel("Model always errors")
|
m := getErrorModel("Model always errors")
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
a := &models.Action{PlanID: 6}
|
a := &models.Action{PlanID: 6}
|
||||||
data, _ := json.Marshal(a)
|
data, _ := json.Marshal(a)
|
||||||
req, _ := http.NewRequest("PUT", "/actions/1", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("PUT", "/1", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
@ -195,10 +194,10 @@ func TestErrorOnRetrieveUpdateAction(t *testing.T) {
|
|||||||
|
|
||||||
m := getErrorOnGetModel("Model always errors")
|
m := getErrorOnGetModel("Model always errors")
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
a := &models.Action{PlanID: 6}
|
a := &models.Action{PlanID: 6}
|
||||||
data, _ := json.Marshal(a)
|
data, _ := json.Marshal(a)
|
||||||
req, _ := http.NewRequest("PUT", "/actions/1", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("PUT", "/1", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
rr := httptest.NewRecorder()
|
rr := httptest.NewRecorder()
|
||||||
|
|
||||||
@ -220,9 +219,9 @@ func TestErrorWriterUpdateAction(t *testing.T) {
|
|||||||
a := &models.Action{PlanID: 6}
|
a := &models.Action{PlanID: 6}
|
||||||
m := getModel([]*models.Plan{}, []*models.Action{a})
|
m := getModel([]*models.Plan{}, []*models.Action{a})
|
||||||
|
|
||||||
router := routes.NewRouter(m, tokens.New("whatever"))
|
router := routes.NewActionRouter(m)
|
||||||
data, _ := json.Marshal(a)
|
data, _ := json.Marshal(a)
|
||||||
req, _ := http.NewRequest("PUT", "/actions/1", bytes.NewBuffer(data))
|
req, _ := http.NewRequest("PUT", "/1", bytes.NewBuffer(data))
|
||||||
req.Header.Set("Content-Type", "application/json")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
rr := NewBadWriter()
|
rr := NewBadWriter()
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
"gitea.deepak.science/deepak/gogmagog/models"
|
"gitea.deepak.science/deepak/gogmagog/models"
|
||||||
"gitea.deepak.science/deepak/gogmagog/tokens"
|
"gitea.deepak.science/deepak/gogmagog/tokens"
|
||||||
"github.com/go-chi/chi"
|
"github.com/go-chi/chi"
|
||||||
|
"github.com/go-chi/jwtauth"
|
||||||
"net/http"
|
"net/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -13,8 +14,16 @@ func NewRouter(m *models.Model, tok tokens.Toker) http.Handler {
|
|||||||
router := chi.NewRouter()
|
router := chi.NewRouter()
|
||||||
router.MethodNotAllowed(methodNotAllowedHandler)
|
router.MethodNotAllowed(methodNotAllowedHandler)
|
||||||
router.NotFound(notFoundHandler)
|
router.NotFound(notFoundHandler)
|
||||||
router.Mount("/plans", newPlanRouter(m))
|
router.Group(func(r chi.Router) {
|
||||||
router.Mount("/actions", newActionRouter(m))
|
r.Use(tok.Verifier())
|
||||||
|
// Handle valid / invalid tokens. In this example, we use
|
||||||
|
// the provided authenticator middleware, but you can write your
|
||||||
|
// own very easily, look at the Authenticator method in jwtauth.go
|
||||||
|
// and tweak it, its not scary.
|
||||||
|
r.Use(jwtauth.Authenticator)
|
||||||
|
r.Mount("/actions", NewActionRouter(m))
|
||||||
|
r.Mount("/plans", NewPlanRouter(m))
|
||||||
|
})
|
||||||
router.Mount("/auth", newAuthRouter(m, tok))
|
router.Mount("/auth", newAuthRouter(m, tok))
|
||||||
router.Mount("/health", newHealthRouter(m))
|
router.Mount("/health", newHealthRouter(m))
|
||||||
router.Get("/ping", ping)
|
router.Get("/ping", ping)
|
||||||
|
@ -3,6 +3,7 @@ package tokens
|
|||||||
import (
|
import (
|
||||||
"gitea.deepak.science/deepak/gogmagog/models"
|
"gitea.deepak.science/deepak/gogmagog/models"
|
||||||
"github.com/go-chi/jwtauth"
|
"github.com/go-chi/jwtauth"
|
||||||
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -10,6 +11,7 @@ import (
|
|||||||
type Toker interface {
|
type Toker interface {
|
||||||
EncodeUser(user *models.UserNoPassword) string
|
EncodeUser(user *models.UserNoPassword) string
|
||||||
VerifyTokenString(tokenString string) error
|
VerifyTokenString(tokenString string) error
|
||||||
|
Verifier() func(http.Handler) http.Handler
|
||||||
}
|
}
|
||||||
|
|
||||||
type jwtToker struct {
|
type jwtToker struct {
|
||||||
@ -39,3 +41,7 @@ func (tok *jwtToker) VerifyTokenString(tokenString string) error {
|
|||||||
_, err := jwtauth.VerifyToken(tok.tokenAuth, tokenString)
|
_, err := jwtauth.VerifyToken(tok.tokenAuth, tokenString)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (tok *jwtToker) Verifier() func(http.Handler) http.Handler {
|
||||||
|
return jwtauth.Verifier(tok.tokenAuth)
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user