Skip to content

Commit

Permalink
Registration status works
Browse files Browse the repository at this point in the history
  • Loading branch information
OmegaTymbJIep committed Jun 30, 2024
1 parent b5a28a6 commit fb4e091
Show file tree
Hide file tree
Showing 7 changed files with 110 additions and 5 deletions.
36 changes: 36 additions & 0 deletions internal/service/api/handlers/get_register_status.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package handlers

import (
"net/http"

"gitlab.com/distributed_lab/ape"
"gitlab.com/distributed_lab/ape/problems"

"github.com/black-pepper-team/community-indexer/internal/service/api/requests"
"github.com/black-pepper-team/community-indexer/internal/service/api/responses"
)

func GetRegisterStatus(w http.ResponseWriter, r *http.Request) {
req, err := requests.NewGetRegister(r)
if err != nil {
Log(r).WithField("reason", err).Debug("Bad request")
ape.RenderErr(w, problems.BadRequest(err)...)
return
}

registryRecord, err := Core(r).GetRegister(req.RegisterID)
switch {
case registryRecord == nil:
ape.RenderErr(w, problems.NotFound())
Log(r).WithError(err).
Debug("Community not found")
return
case err != nil:
Log(r).WithError(err).
Error("Failed to get register status")
ape.RenderErr(w, problems.InternalError())
return
}

ape.Render(w, responses.NewGetRegisterStatus(registryRecord))
}
2 changes: 1 addition & 1 deletion internal/service/api/requests/get_community.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func NewGetCommunity(r *http.Request) (*GetCommunityRequest, error) {
// nolint
func (r *getCommunityRequest) validate() error {
return validation.Errors{
"path/{revocation-id}": validation.Validate(
"path/{community-id}": validation.Validate(
r.CommunityID, validation.Required, validation.By(MustBeValidUUID),
),
}.Filter()
Expand Down
48 changes: 48 additions & 0 deletions internal/service/api/requests/get_register_status.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package requests

import (
"net/http"

"github.com/go-chi/chi"
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/google/uuid"
)

const (
registerIdPathParam = "register-id"
)

type getRegisterRequest struct {
RegisterID string
}

type GetRegisterRequest struct {
RegisterID uuid.UUID
}

func NewGetRegister(r *http.Request) (*GetRegisterRequest, error) {
requestRaw := getRegisterRequest{
RegisterID: chi.URLParam(r, registerIdPathParam),
}

if err := requestRaw.validate(); err != nil {
return nil, err
}

return requestRaw.parse(), nil
}

// nolint
func (r *getRegisterRequest) validate() error {
return validation.Errors{
"path/{register-id}": validation.Validate(
r.RegisterID, validation.Required, validation.By(MustBeValidUUID),
),
}.Filter()
}

func (r *getRegisterRequest) parse() *GetRegisterRequest {
return &GetRegisterRequest{
RegisterID: uuid.MustParse(r.RegisterID),
}
}
10 changes: 10 additions & 0 deletions internal/service/api/responses/get_register_status.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package responses

import "github.com/black-pepper-team/community-indexer/internal/service/core"

func NewGetRegisterStatus(registerRequest *core.RegisterRequest) *RegisterRequest {
return &RegisterRequest{
Id: registerRequest.Id,
Status: string(registerRequest.Status),
}
}
1 change: 1 addition & 0 deletions internal/service/api/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ func (s *service) router() chi.Router {
r.Get("/list", handlers.CommunityList)
r.Post("/import", handlers.ImportCommunity)
r.Post("/register", handlers.RegisterInCommunity)
r.Get("/register/{register-id}", handlers.GetRegisterStatus)
})
})

Expand Down
16 changes: 13 additions & 3 deletions internal/service/core/handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ func (c *Core) RegisterInCommunity(
registryRequest := c.registerRequests[*registerId]

if registryRequest.Status == Processing || registryRequest.Status == Registered {
return &registryRequest, nil
return registryRequest, nil
}
}
}
Expand Down Expand Up @@ -275,7 +275,7 @@ func (c *Core) RegisterInCommunity(
Status: Processing,
}

c.registerRequests[requestId] = registerRequest
c.registerRequests[requestId] = &registerRequest

if c.registeredUsers[nftOwner] == nil {
c.registeredUsers[nftOwner] = make(map[common.Address]*uuid.UUID)
Expand All @@ -295,7 +295,7 @@ func (c *Core) RegisterInCommunity(
}

registerRequest.Status = nextStatus
c.registerRequests[requestId] = registerRequest
c.registerRequests[requestId] = &registerRequest

return
}()
Expand All @@ -312,3 +312,13 @@ type VarifiableCommitmentInputs struct {
BabyJubJubPKAy string `json:"babyJubJubPK_Ay"`
Timestamp string `json:"timestamp"`
}

func (c *Core) GetRegister(registerRequestId uuid.UUID) (*RegisterRequest, error) {
registerRequest := c.registerRequests[registerRequestId]

if registerRequest == nil {
return nil, nil
}

return registerRequest, nil
}
2 changes: 1 addition & 1 deletion internal/service/core/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ type Core struct {

authStorageContract *contracts.AuthenticationStorage
chatContract *contracts.Chat
registerRequests map[uuid.UUID]RegisterRequest
registerRequests map[uuid.UUID]*RegisterRequest
registeredUsers RegisterStorage

circuits Circuits
Expand Down

0 comments on commit fb4e091

Please sign in to comment.