Skip to content

Commit

Permalink
API models improvements, fixes in paths and handlers
Browse files Browse the repository at this point in the history
  • Loading branch information
violog committed Jan 30, 2024
1 parent dc7b3b5 commit 5f38bcd
Show file tree
Hide file tree
Showing 16 changed files with 37 additions and 171 deletions.
4 changes: 1 addition & 3 deletions docs/spec/components/parameters/pageOrder.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,4 @@ schema:
- asc
- desc
default: desc
description: >-
Order of records on the page. If pageOrder is not specified, order of
records is by default sorted by ID.
description: Order of records on the page.
17 changes: 0 additions & 17 deletions docs/spec/components/schemas/ClaimEvent.yaml

This file was deleted.

16 changes: 0 additions & 16 deletions docs/spec/components/schemas/CreateBalance.yaml

This file was deleted.

5 changes: 5 additions & 0 deletions docs/spec/components/schemas/CreateBalanceKey.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
type: object
required:
- id
- type
properties:
id:
type: string
description: DID of the points owner
example: "did:iden3:readonly:tUDjWxnVJNi7t3FudukqrUcNwF5KVGoWgim5pp2jV"
type:
type: string
enum: [ create_balance ]
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ post:
- data
properties:
data:
$ref: '#/components/schemas/CreateBalance'
$ref: '#/components/schemas/CreateBalanceKey'
responses:
201:
description: Created
Expand Down Expand Up @@ -49,6 +49,7 @@ get:
parameters:
- $ref: '#/components/parameters/pageCursor'
- $ref: '#/components/parameters/pageLimit'
- $ref: '#/components/parameters/pageNumber'
responses:
200:
description: Success
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ patch:
- data
properties:
data:
$ref: '#/components/schemas/ClaimEvent'
$ref: '#/components/schemas/ClaimEventKey'
responses:
200:
description: Event claimed, points accrued
Expand Down
2 changes: 1 addition & 1 deletion internal/service/handlers/create_balance.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func CreateBalance(w http.ResponseWriter, r *http.Request) {
return
}

did := req.Data.Attributes.UserDid
did := req.Data.ID
balance := getBalanceByDID(did, false, w, r)
if balance != nil {
ape.RenderErr(w, problems.Conflict())
Expand Down
2 changes: 1 addition & 1 deletion internal/service/handlers/get_balance.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func GetBalance(w http.ResponseWriter, r *http.Request) {
return
}

balance := getBalanceByDID(req.FilterDID, true, w, r)
balance := getBalanceByDID(req.DID, true, w, r)
if balance == nil {
return
}
Expand Down
13 changes: 8 additions & 5 deletions internal/service/requests/claim_event.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,23 @@ import (

"github.com/go-chi/chi"
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/rarimo/rarime-points-svc/internal/data"
"github.com/rarimo/rarime-points-svc/resources"
)

func NewClaimEvent(r *http.Request) (req resources.ClaimEventRequest, err error) {
func NewClaimEvent(r *http.Request) (req resources.Relation, err error) {
id := chi.URLParam(r, "id")
if err = json.NewDecoder(r.Body).Decode(&req); err != nil {
err = fmt.Errorf("decode request body: %w", err)
return
}

if req.Data == nil {
err = validation.Errors{"data": validation.ErrRequired}
return
}

return req, validation.Errors{
"data/id": validation.Validate(req.Data.ID, validation.Required, validation.In(id)),
"data/type": validation.Validate(req.Data.Type, validation.Required, validation.In(resources.CLAIM_EVENT)),
"data/attributes/status": validation.Validate(req.Data.Attributes.Status, validation.Required, validation.In(data.EventClaimed)),
"data/id": validation.Validate(req.Data.ID, validation.Required, validation.In(id)),
"data/type": validation.Validate(req.Data.Type, validation.Required, validation.In(resources.CLAIM_EVENT)),
}.Filter()
}
12 changes: 8 additions & 4 deletions internal/service/requests/create_balance.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,19 @@ import (
"github.com/rarimo/rarime-points-svc/resources"
)

func NewCreateBalance(r *http.Request) (req resources.CreateBalanceRequest, err error) {
func NewCreateBalance(r *http.Request) (req resources.Relation, err error) {
if err = json.NewDecoder(r.Body).Decode(&req); err != nil {
err = fmt.Errorf("decode request body: %w", err)
return
}

if req.Data == nil {
err = validation.Errors{"data": validation.ErrRequired}
return
}

return req, validation.Errors{
"data/id": validation.Validate(req.Data.ID, validation.Empty),
"data/type": validation.Validate(req.Data.Type, validation.Required, validation.In(resources.CREATE_BALANCE)),
"data/attributes/user_did": validation.Validate(req.Data.Attributes.UserDid, validation.Required),
"data/id": validation.Validate(req.Data.ID, validation.Required),
"data/type": validation.Validate(req.Data.Type, validation.Required, validation.In(resources.CREATE_BALANCE)),
}.Filter()
}
18 changes: 6 additions & 12 deletions internal/service/requests/get_balance.go
Original file line number Diff line number Diff line change
@@ -1,26 +1,20 @@
package requests

import (
"fmt"
"net/http"

"github.com/go-chi/chi"
validation "github.com/go-ozzo/ozzo-validation/v4"
"gitlab.com/distributed_lab/urlval/v4"
)

type GetBalance struct {
FilterDID string `filter:"did"`
DID string
}

func NewGetBalance(r *http.Request) (req GetBalance, err error) {
if err = urlval.Decode(r.URL.Query(), &req); err != nil {
return req, validation.Errors{
"query": fmt.Errorf("failed to decode query: %w", err),
}
}
func NewGetBalance(r *http.Request) (GetBalance, error) {
did := chi.URLParam(r, "did")

err = validation.Errors{
"filter[did]": validation.Validate(req.FilterDID, validation.Required),
return GetBalance{did}, validation.Errors{
"did": validation.Validate(did, validation.Required),
}.Filter()
return
}
8 changes: 4 additions & 4 deletions internal/service/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ func (s *service) router() chi.Router {
handlers.CtxEventTypes(s.cfg.EventTypes()),
),
)
r.Route("/integrations/rarime-points-svc", func(r chi.Router) {
r.Route("/integrations/rarime-points-svc/v1", func(r chi.Router) {
r.Group(func(r chi.Router) {
r.Use(handlers.AuthMiddleware(s.cfg.Auth(), s.log))
r.Get("/balance", handlers.GetBalance)
r.Post("/balance", handlers.CreateBalance)
r.Get("/balances/{did}", handlers.GetBalance)
r.Post("/balances", handlers.CreateBalance)
r.Get("/events", handlers.ListEvents)
r.Patch("/events/{id}", handlers.ClaimEvent)
})
r.Get("/leaderboard", handlers.Leaderboard)
r.Get("/balances", handlers.Leaderboard)
})

return r
Expand Down
43 changes: 0 additions & 43 deletions resources/model_claim_event.go

This file was deleted.

10 changes: 0 additions & 10 deletions resources/model_claim_event_attributes.go

This file was deleted.

43 changes: 0 additions & 43 deletions resources/model_create_balance.go

This file was deleted.

10 changes: 0 additions & 10 deletions resources/model_create_balance_attributes.go

This file was deleted.

0 comments on commit 5f38bcd

Please sign in to comment.