Fix resources naming scheme
The accepted practice is to retain the collection name even for a single
resource operation, like getting a specific transaction.
Also moves the PUT /transactions to /transactions/{id} which makes it
clearer that it can only be applied to an already created transaction.
This commit is contained in:
parent
ac396ac259
commit
24b7fc3254
@ -8,7 +8,7 @@ info:
|
|||||||
license:
|
license:
|
||||||
name: GNU General Public License v3.0 or later
|
name: GNU General Public License v3.0 or later
|
||||||
url: https://www.gnu.org/licenses/gpl-3.0-standalone.html
|
url: https://www.gnu.org/licenses/gpl-3.0-standalone.html
|
||||||
version: 0.0.1
|
version: 0.1.0
|
||||||
|
|
||||||
paths:
|
paths:
|
||||||
/transactions:
|
/transactions:
|
||||||
@ -73,23 +73,8 @@ paths:
|
|||||||
$ref: "#/components/schemas/Transaction"
|
$ref: "#/components/schemas/Transaction"
|
||||||
"400":
|
"400":
|
||||||
description: Transaction not created
|
description: Transaction not created
|
||||||
put:
|
|
||||||
summary: Update an existing transaction
|
|
||||||
operationId: updateTransaction
|
|
||||||
requestBody:
|
|
||||||
content:
|
|
||||||
application/json:
|
|
||||||
schema:
|
|
||||||
allOf:
|
|
||||||
- $ref: "#/components/schemas/Transaction"
|
|
||||||
- required:
|
|
||||||
- id
|
|
||||||
|
|
||||||
responses:
|
/transactions/{transactionId}:
|
||||||
"204":
|
|
||||||
description: Transaction updated successfully
|
|
||||||
|
|
||||||
/transaction/{transactionId}:
|
|
||||||
get:
|
get:
|
||||||
summary: Find transaction by ID
|
summary: Find transaction by ID
|
||||||
operationId: getTransactionById
|
operationId: getTransactionById
|
||||||
@ -112,6 +97,31 @@ paths:
|
|||||||
description: Invalid ID supplied
|
description: Invalid ID supplied
|
||||||
"404":
|
"404":
|
||||||
description: Transaction not found
|
description: Transaction not found
|
||||||
|
put:
|
||||||
|
summary: Update an existing transaction
|
||||||
|
operationId: updateTransaction
|
||||||
|
parameters:
|
||||||
|
- name: transactionId
|
||||||
|
in: path
|
||||||
|
description: ID of transaction to update
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
format: int64
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/Transaction"
|
||||||
|
responses:
|
||||||
|
"204":
|
||||||
|
description: Transaction updated successfully
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: "#/components/schemas/Transaction"
|
||||||
|
"404":
|
||||||
|
description: Transaction not found
|
||||||
|
|
||||||
/banks:
|
/banks:
|
||||||
get:
|
get:
|
||||||
@ -127,7 +137,7 @@ paths:
|
|||||||
"204":
|
"204":
|
||||||
description: No banks
|
description: No banks
|
||||||
|
|
||||||
/bank/{bankId}:
|
/banks/{bankId}:
|
||||||
get:
|
get:
|
||||||
summary: Find bank by ID
|
summary: Find bank by ID
|
||||||
operationId: getBankById
|
operationId: getBankById
|
||||||
|
|||||||
@ -92,7 +92,14 @@ func (server *ServerImpl) CreateTransaction(ctx echo.Context) error {
|
|||||||
return ctx.JSON(http.StatusCreated, entity2transaction(transaction))
|
return ctx.JSON(http.StatusCreated, entity2transaction(transaction))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (server *ServerImpl) UpdateTransaction(ctx echo.Context) error {
|
func (server *ServerImpl) UpdateTransaction(ctx echo.Context, transactionId int64) error {
|
||||||
|
if exists, err := server.Dal.TransactionExists(uint64(transactionId)); err != nil {
|
||||||
|
log.Printf("%v", err)
|
||||||
|
return ctx.NoContent(http.StatusInternalServerError)
|
||||||
|
} else if !exists {
|
||||||
|
return ctx.NoContent(http.StatusNotFound)
|
||||||
|
}
|
||||||
|
|
||||||
t := new(Transaction)
|
t := new(Transaction)
|
||||||
if err := ctx.Bind(t); err != nil {
|
if err := ctx.Bind(t); err != nil {
|
||||||
log.Printf("%v", err)
|
log.Printf("%v", err)
|
||||||
@ -100,22 +107,13 @@ func (server *ServerImpl) UpdateTransaction(ctx echo.Context) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
transaction := transaction2entity(*t)
|
transaction := transaction2entity(*t)
|
||||||
|
transaction.Id = uint64(transactionId)
|
||||||
|
|
||||||
exists, err := server.Dal.TransactionExists(transaction.Id)
|
transaction, err := server.Dal.UpdateTransaction(transaction)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("%v", err)
|
log.Printf("%v", err)
|
||||||
return ctx.NoContent(http.StatusInternalServerError)
|
return ctx.NoContent(http.StatusInternalServerError)
|
||||||
}
|
}
|
||||||
|
|
||||||
if exists {
|
return ctx.JSON(http.StatusOK, entity2transaction(transaction))
|
||||||
transaction, err := server.Dal.UpdateTransaction(transaction)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("%v", err)
|
|
||||||
return ctx.NoContent(http.StatusInternalServerError)
|
|
||||||
}
|
|
||||||
|
|
||||||
return ctx.JSON(http.StatusOK, entity2transaction(transaction))
|
|
||||||
} else {
|
|
||||||
return ctx.NoContent(http.StatusNotFound)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -297,14 +297,14 @@ func TestServerImpl_UpdateTransaction(t *testing.T) {
|
|||||||
e := m.EXPECT()
|
e := m.EXPECT()
|
||||||
|
|
||||||
type fields struct {
|
type fields struct {
|
||||||
// Dal dal.DAL
|
|
||||||
fn func(any) *gomock.Call
|
fn func(any) *gomock.Call
|
||||||
args any
|
args any
|
||||||
returns any
|
returns any
|
||||||
err error
|
err error
|
||||||
}
|
}
|
||||||
type args struct {
|
type args struct {
|
||||||
request string
|
request string
|
||||||
|
transactionId int64
|
||||||
}
|
}
|
||||||
type want struct {
|
type want struct {
|
||||||
status int
|
status int
|
||||||
@ -323,7 +323,7 @@ func TestServerImpl_UpdateTransaction(t *testing.T) {
|
|||||||
{e.TransactionExists, gomock.Any(), true, nil},
|
{e.TransactionExists, gomock.Any(), true, nil},
|
||||||
{e.UpdateTransaction, gomock.Any(), entity.Transaction{Id: 1, Date: date, Description: "freedom", Value: decimal.New(9000, 0)}, nil},
|
{e.UpdateTransaction, gomock.Any(), entity.Transaction{Id: 1, Date: date, Description: "freedom", Value: decimal.New(9000, 0)}, nil},
|
||||||
},
|
},
|
||||||
args{`{"date":"1974-04-25","description":"freedom","id":1,"value":9000}`},
|
args{`{"date":"1974-04-25","description":"freedom","value":9000}`, 1},
|
||||||
want{200, `{"date":"1974-04-25","description":"freedom","id":1,"value":9000}`},
|
want{200, `{"date":"1974-04-25","description":"freedom","id":1,"value":9000}`},
|
||||||
false,
|
false,
|
||||||
},
|
},
|
||||||
@ -332,7 +332,7 @@ func TestServerImpl_UpdateTransaction(t *testing.T) {
|
|||||||
[]fields{
|
[]fields{
|
||||||
{e.TransactionExists, gomock.Any(), false, nil},
|
{e.TransactionExists, gomock.Any(), false, nil},
|
||||||
},
|
},
|
||||||
args{`{"date":"1974-04-25","description":"freedom","id":1,"value":9000}`},
|
args{`{"date":"1974-04-25","description":"freedom","id":1,"value":9000}`, 1},
|
||||||
want{404, ""},
|
want{404, ""},
|
||||||
false,
|
false,
|
||||||
},
|
},
|
||||||
@ -351,7 +351,7 @@ func TestServerImpl_UpdateTransaction(t *testing.T) {
|
|||||||
req.Header.Set(echo.HeaderContentType, echo.MIMEApplicationJSON)
|
req.Header.Set(echo.HeaderContentType, echo.MIMEApplicationJSON)
|
||||||
ctx := echo.New().NewContext(req, rec)
|
ctx := echo.New().NewContext(req, rec)
|
||||||
|
|
||||||
if err := server.UpdateTransaction(ctx); (err != nil) != tt.wantErr {
|
if err := server.UpdateTransaction(ctx, tt.args.transactionId); (err != nil) != tt.wantErr {
|
||||||
t.Errorf("ServerImpl.UpdateTransaction() error = %v, wantErr %v", err, tt.wantErr)
|
t.Errorf("ServerImpl.UpdateTransaction() error = %v, wantErr %v", err, tt.wantErr)
|
||||||
}
|
}
|
||||||
if got := rec.Code; !reflect.DeepEqual(got, tt.want.status) {
|
if got := rec.Code; !reflect.DeepEqual(got, tt.want.status) {
|
||||||
|
|||||||
@ -59,41 +59,32 @@ type GetTransactionsParams struct {
|
|||||||
Sort *string `form:"sort,omitempty" json:"sort,omitempty"`
|
Sort *string `form:"sort,omitempty" json:"sort,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateTransactionJSONBody defines parameters for UpdateTransaction.
|
|
||||||
type UpdateTransactionJSONBody struct {
|
|
||||||
Category *string `json:"category,omitempty"`
|
|
||||||
Date openapi_types.Date `json:"date"`
|
|
||||||
Description string `json:"description"`
|
|
||||||
Id int64 `json:"id"`
|
|
||||||
Value float32 `json:"value"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// CreateTransactionJSONRequestBody defines body for CreateTransaction for application/json ContentType.
|
// CreateTransactionJSONRequestBody defines body for CreateTransaction for application/json ContentType.
|
||||||
type CreateTransactionJSONRequestBody = Transaction
|
type CreateTransactionJSONRequestBody = Transaction
|
||||||
|
|
||||||
// UpdateTransactionJSONRequestBody defines body for UpdateTransaction for application/json ContentType.
|
// UpdateTransactionJSONRequestBody defines body for UpdateTransaction for application/json ContentType.
|
||||||
type UpdateTransactionJSONRequestBody UpdateTransactionJSONBody
|
type UpdateTransactionJSONRequestBody = Transaction
|
||||||
|
|
||||||
// ServerInterface represents all server handlers.
|
// ServerInterface represents all server handlers.
|
||||||
type ServerInterface interface {
|
type ServerInterface interface {
|
||||||
// Find bank by ID
|
|
||||||
// (GET /bank/{bankId})
|
|
||||||
GetBankById(ctx echo.Context, bankId string) error
|
|
||||||
// Retrieve existing banks
|
// Retrieve existing banks
|
||||||
// (GET /banks)
|
// (GET /banks)
|
||||||
GetBanks(ctx echo.Context) error
|
GetBanks(ctx echo.Context) error
|
||||||
// Find transaction by ID
|
// Find bank by ID
|
||||||
// (GET /transaction/{transactionId})
|
// (GET /banks/{bankId})
|
||||||
GetTransactionById(ctx echo.Context, transactionId int64) error
|
GetBankById(ctx echo.Context, bankId string) error
|
||||||
// Retrieve existing transactions
|
// Retrieve existing transactions
|
||||||
// (GET /transactions)
|
// (GET /transactions)
|
||||||
GetTransactions(ctx echo.Context, params GetTransactionsParams) error
|
GetTransactions(ctx echo.Context, params GetTransactionsParams) error
|
||||||
// Create a new transaction
|
// Create a new transaction
|
||||||
// (POST /transactions)
|
// (POST /transactions)
|
||||||
CreateTransaction(ctx echo.Context) error
|
CreateTransaction(ctx echo.Context) error
|
||||||
|
// Find transaction by ID
|
||||||
|
// (GET /transactions/{transactionId})
|
||||||
|
GetTransactionById(ctx echo.Context, transactionId int64) error
|
||||||
// Update an existing transaction
|
// Update an existing transaction
|
||||||
// (PUT /transactions)
|
// (PUT /transactions/{transactionId})
|
||||||
UpdateTransaction(ctx echo.Context) error
|
UpdateTransaction(ctx echo.Context, transactionId int64) error
|
||||||
}
|
}
|
||||||
|
|
||||||
// ServerInterfaceWrapper converts echo contexts to parameters.
|
// ServerInterfaceWrapper converts echo contexts to parameters.
|
||||||
@ -101,6 +92,15 @@ type ServerInterfaceWrapper struct {
|
|||||||
Handler ServerInterface
|
Handler ServerInterface
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetBanks converts echo context to params.
|
||||||
|
func (w *ServerInterfaceWrapper) GetBanks(ctx echo.Context) error {
|
||||||
|
var err error
|
||||||
|
|
||||||
|
// Invoke the callback with all the unmarshaled arguments
|
||||||
|
err = w.Handler.GetBanks(ctx)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// GetBankById converts echo context to params.
|
// GetBankById converts echo context to params.
|
||||||
func (w *ServerInterfaceWrapper) GetBankById(ctx echo.Context) error {
|
func (w *ServerInterfaceWrapper) GetBankById(ctx echo.Context) error {
|
||||||
var err error
|
var err error
|
||||||
@ -117,31 +117,6 @@ func (w *ServerInterfaceWrapper) GetBankById(ctx echo.Context) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetBanks converts echo context to params.
|
|
||||||
func (w *ServerInterfaceWrapper) GetBanks(ctx echo.Context) error {
|
|
||||||
var err error
|
|
||||||
|
|
||||||
// Invoke the callback with all the unmarshaled arguments
|
|
||||||
err = w.Handler.GetBanks(ctx)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetTransactionById converts echo context to params.
|
|
||||||
func (w *ServerInterfaceWrapper) GetTransactionById(ctx echo.Context) error {
|
|
||||||
var err error
|
|
||||||
// ------------- Path parameter "transactionId" -------------
|
|
||||||
var transactionId int64
|
|
||||||
|
|
||||||
err = runtime.BindStyledParameterWithOptions("simple", "transactionId", ctx.Param("transactionId"), &transactionId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true})
|
|
||||||
if err != nil {
|
|
||||||
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter transactionId: %s", err))
|
|
||||||
}
|
|
||||||
|
|
||||||
// Invoke the callback with all the unmarshaled arguments
|
|
||||||
err = w.Handler.GetTransactionById(ctx, transactionId)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetTransactions converts echo context to params.
|
// GetTransactions converts echo context to params.
|
||||||
func (w *ServerInterfaceWrapper) GetTransactions(ctx echo.Context) error {
|
func (w *ServerInterfaceWrapper) GetTransactions(ctx echo.Context) error {
|
||||||
var err error
|
var err error
|
||||||
@ -197,12 +172,35 @@ func (w *ServerInterfaceWrapper) CreateTransaction(ctx echo.Context) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetTransactionById converts echo context to params.
|
||||||
|
func (w *ServerInterfaceWrapper) GetTransactionById(ctx echo.Context) error {
|
||||||
|
var err error
|
||||||
|
// ------------- Path parameter "transactionId" -------------
|
||||||
|
var transactionId int64
|
||||||
|
|
||||||
|
err = runtime.BindStyledParameterWithOptions("simple", "transactionId", ctx.Param("transactionId"), &transactionId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true})
|
||||||
|
if err != nil {
|
||||||
|
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter transactionId: %s", err))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Invoke the callback with all the unmarshaled arguments
|
||||||
|
err = w.Handler.GetTransactionById(ctx, transactionId)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// UpdateTransaction converts echo context to params.
|
// UpdateTransaction converts echo context to params.
|
||||||
func (w *ServerInterfaceWrapper) UpdateTransaction(ctx echo.Context) error {
|
func (w *ServerInterfaceWrapper) UpdateTransaction(ctx echo.Context) error {
|
||||||
var err error
|
var err error
|
||||||
|
// ------------- Path parameter "transactionId" -------------
|
||||||
|
var transactionId int64
|
||||||
|
|
||||||
|
err = runtime.BindStyledParameterWithOptions("simple", "transactionId", ctx.Param("transactionId"), &transactionId, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true})
|
||||||
|
if err != nil {
|
||||||
|
return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter transactionId: %s", err))
|
||||||
|
}
|
||||||
|
|
||||||
// Invoke the callback with all the unmarshaled arguments
|
// Invoke the callback with all the unmarshaled arguments
|
||||||
err = w.Handler.UpdateTransaction(ctx)
|
err = w.Handler.UpdateTransaction(ctx, transactionId)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -234,35 +232,35 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL
|
|||||||
Handler: si,
|
Handler: si,
|
||||||
}
|
}
|
||||||
|
|
||||||
router.GET(baseURL+"/bank/:bankId", wrapper.GetBankById)
|
|
||||||
router.GET(baseURL+"/banks", wrapper.GetBanks)
|
router.GET(baseURL+"/banks", wrapper.GetBanks)
|
||||||
router.GET(baseURL+"/transaction/:transactionId", wrapper.GetTransactionById)
|
router.GET(baseURL+"/banks/:bankId", wrapper.GetBankById)
|
||||||
router.GET(baseURL+"/transactions", wrapper.GetTransactions)
|
router.GET(baseURL+"/transactions", wrapper.GetTransactions)
|
||||||
router.POST(baseURL+"/transactions", wrapper.CreateTransaction)
|
router.POST(baseURL+"/transactions", wrapper.CreateTransaction)
|
||||||
router.PUT(baseURL+"/transactions", wrapper.UpdateTransaction)
|
router.GET(baseURL+"/transactions/:transactionId", wrapper.GetTransactionById)
|
||||||
|
router.PUT(baseURL+"/transactions/:transactionId", wrapper.UpdateTransaction)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Base64 encoded, gzipped, json marshaled Swagger object
|
// Base64 encoded, gzipped, json marshaled Swagger object
|
||||||
var swaggerSpec = []string{
|
var swaggerSpec = []string{
|
||||||
|
|
||||||
"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",
|
||||||
"AAD//5ap8eBoDgAA",
|
"AP//Ba56DmsPAAA=",
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetSwagger returns the content of the embedded swagger specification file
|
// GetSwagger returns the content of the embedded swagger specification file
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user