nidus-sync/resource/contact.go
Eli Ribble 725945d95c
Some checks failed
/ golint (push) Has been cancelled
WIP: creating contact resource
2026-05-15 20:10:14 +00:00

48 lines
1.2 KiB
Go

package resource
import (
"context"
"net/http"
nhttp "github.com/Gleipnir-Technology/nidus-sync/http"
"github.com/Gleipnir-Technology/nidus-sync/platform"
"github.com/Gleipnir-Technology/nidus-sync/platform/types"
//"github.com/rs/zerolog/log"
)
type contactR struct {
router *router
}
func Contact(r *router) *contactR {
return &contactR{
router: r,
}
}
type contact struct {
types.Contact
URI string
}
func (res *contactR) ByIDGet(ctx context.Context, r *http.Request, user platform.User, qp QueryParams) (contact, *nhttp.ErrorWithStatus) {
return contact{}, nil
}
func (res *contactR) List(ctx context.Context, r *http.Request, user platform.User, query QueryParams) ([]contact, *nhttp.ErrorWithStatus) {
contacts, err := platform.ContactsForOrganization(ctx, user.Organization.ID)
if err != nil {
return nil, nhttp.NewError("nuisance report query: %w", err)
}
result := make([]contact, len(contacts))
for i, c := range contacts {
uri, err := res.router.IDToURI("contact.ByIDGet", int(c.ID))
if err != nil {
return nil, nhttp.NewError("contact uri: %w", err)
}
result[i] = contact{
Contact: c,
URI: uri,
}
}
return result, nil
}