forked from tangled.org/core
Monorepo for Tangled — https://tangled.org

appview: rename refresolver module to mentions

usage of the resolver is now mentionsResolver.

Signed-off-by: oppiliappan <me@oppi.li>

Changed files
+83 -81
appview
issues
mentions
pulls
state
+30 -30
appview/issues/issues.go
···
"tangled.org/core/appview/config"
"tangled.org/core/appview/db"
issues_indexer "tangled.org/core/appview/indexer/issues"
"tangled.org/core/appview/models"
"tangled.org/core/appview/notify"
"tangled.org/core/appview/oauth"
"tangled.org/core/appview/pages"
"tangled.org/core/appview/pages/repoinfo"
"tangled.org/core/appview/pagination"
-
"tangled.org/core/appview/refresolver"
"tangled.org/core/appview/reporesolver"
"tangled.org/core/appview/validator"
"tangled.org/core/idresolver"
···
)
type Issues struct {
-
oauth *oauth.OAuth
-
repoResolver *reporesolver.RepoResolver
-
enforcer *rbac.Enforcer
-
pages *pages.Pages
-
idResolver *idresolver.Resolver
-
refResolver *refresolver.Resolver
-
db *db.DB
-
config *config.Config
-
notifier notify.Notifier
-
logger *slog.Logger
-
validator *validator.Validator
-
indexer *issues_indexer.Indexer
}
func New(
···
enforcer *rbac.Enforcer,
pages *pages.Pages,
idResolver *idresolver.Resolver,
-
refResolver *refresolver.Resolver,
db *db.DB,
config *config.Config,
notifier notify.Notifier,
···
logger *slog.Logger,
) *Issues {
return &Issues{
-
oauth: oauth,
-
repoResolver: repoResolver,
-
enforcer: enforcer,
-
pages: pages,
-
idResolver: idResolver,
-
refResolver: refResolver,
-
db: db,
-
config: config,
-
notifier: notifier,
-
logger: logger,
-
validator: validator,
-
indexer: indexer,
}
}
···
newIssue := issue
newIssue.Title = r.FormValue("title")
newIssue.Body = r.FormValue("body")
-
newIssue.Mentions, newIssue.References = rp.refResolver.Resolve(r.Context(), newIssue.Body)
if err := rp.validator.ValidateIssue(newIssue); err != nil {
l.Error("validation error", "err", err)
···
replyTo = &replyToUri
}
-
mentions, references := rp.refResolver.Resolve(r.Context(), body)
comment := models.IssueComment{
Did: user.Did,
···
newComment := comment
newComment.Body = newBody
newComment.Edited = &now
-
newComment.Mentions, newComment.References = rp.refResolver.Resolve(r.Context(), newBody)
record := newComment.AsRecord()
···
})
case http.MethodPost:
body := r.FormValue("body")
-
mentions, references := rp.refResolver.Resolve(r.Context(), body)
issue := &models.Issue{
RepoAt: f.RepoAt(),
···
"tangled.org/core/appview/config"
"tangled.org/core/appview/db"
issues_indexer "tangled.org/core/appview/indexer/issues"
+
"tangled.org/core/appview/mentions"
"tangled.org/core/appview/models"
"tangled.org/core/appview/notify"
"tangled.org/core/appview/oauth"
"tangled.org/core/appview/pages"
"tangled.org/core/appview/pages/repoinfo"
"tangled.org/core/appview/pagination"
"tangled.org/core/appview/reporesolver"
"tangled.org/core/appview/validator"
"tangled.org/core/idresolver"
···
)
type Issues struct {
+
oauth *oauth.OAuth
+
repoResolver *reporesolver.RepoResolver
+
enforcer *rbac.Enforcer
+
pages *pages.Pages
+
idResolver *idresolver.Resolver
+
mentionsResolver *mentions.Resolver
+
db *db.DB
+
config *config.Config
+
notifier notify.Notifier
+
logger *slog.Logger
+
validator *validator.Validator
+
indexer *issues_indexer.Indexer
}
func New(
···
enforcer *rbac.Enforcer,
pages *pages.Pages,
idResolver *idresolver.Resolver,
+
mentionsResolver *mentions.Resolver,
db *db.DB,
config *config.Config,
notifier notify.Notifier,
···
logger *slog.Logger,
) *Issues {
return &Issues{
+
oauth: oauth,
+
repoResolver: repoResolver,
+
enforcer: enforcer,
+
pages: pages,
+
idResolver: idResolver,
+
mentionsResolver: mentionsResolver,
+
db: db,
+
config: config,
+
notifier: notifier,
+
logger: logger,
+
validator: validator,
+
indexer: indexer,
}
}
···
newIssue := issue
newIssue.Title = r.FormValue("title")
newIssue.Body = r.FormValue("body")
+
newIssue.Mentions, newIssue.References = rp.mentionsResolver.Resolve(r.Context(), newIssue.Body)
if err := rp.validator.ValidateIssue(newIssue); err != nil {
l.Error("validation error", "err", err)
···
replyTo = &replyToUri
}
+
mentions, references := rp.mentionsResolver.Resolve(r.Context(), body)
comment := models.IssueComment{
Did: user.Did,
···
newComment := comment
newComment.Body = newBody
newComment.Edited = &now
+
newComment.Mentions, newComment.References = rp.mentionsResolver.Resolve(r.Context(), newBody)
record := newComment.AsRecord()
···
})
case http.MethodPost:
body := r.FormValue("body")
+
mentions, references := rp.mentionsResolver.Resolve(r.Context(), body)
issue := &models.Issue{
RepoAt: f.RepoAt(),
+29 -29
appview/pulls/pulls.go
···
"tangled.org/core/appview/config"
"tangled.org/core/appview/db"
pulls_indexer "tangled.org/core/appview/indexer/pulls"
"tangled.org/core/appview/models"
"tangled.org/core/appview/notify"
"tangled.org/core/appview/oauth"
"tangled.org/core/appview/pages"
"tangled.org/core/appview/pages/markup"
"tangled.org/core/appview/pages/repoinfo"
-
"tangled.org/core/appview/refresolver"
"tangled.org/core/appview/reporesolver"
"tangled.org/core/appview/validator"
"tangled.org/core/appview/xrpcclient"
···
)
type Pulls struct {
-
oauth *oauth.OAuth
-
repoResolver *reporesolver.RepoResolver
-
pages *pages.Pages
-
idResolver *idresolver.Resolver
-
refResolver *refresolver.Resolver
-
db *db.DB
-
config *config.Config
-
notifier notify.Notifier
-
enforcer *rbac.Enforcer
-
logger *slog.Logger
-
validator *validator.Validator
-
indexer *pulls_indexer.Indexer
}
func New(
···
repoResolver *reporesolver.RepoResolver,
pages *pages.Pages,
resolver *idresolver.Resolver,
-
refResolver *refresolver.Resolver,
db *db.DB,
config *config.Config,
notifier notify.Notifier,
···
logger *slog.Logger,
) *Pulls {
return &Pulls{
-
oauth: oauth,
-
repoResolver: repoResolver,
-
pages: pages,
-
idResolver: resolver,
-
refResolver: refResolver,
-
db: db,
-
config: config,
-
notifier: notifier,
-
enforcer: enforcer,
-
logger: logger,
-
validator: validator,
-
indexer: indexer,
}
}
···
return
}
-
mentions, references := s.refResolver.Resolve(r.Context(), body)
// Start a transaction
tx, err := s.db.BeginTx(r.Context(), nil)
···
}
}
-
mentions, references := s.refResolver.Resolve(r.Context(), body)
rkey := tid.TID()
initialSubmission := models.PullSubmission{
···
body := fp.Body
rkey := tid.TID()
-
mentions, references := s.refResolver.Resolve(ctx, body)
initialSubmission := models.PullSubmission{
Patch: fp.Raw,
···
"tangled.org/core/appview/config"
"tangled.org/core/appview/db"
pulls_indexer "tangled.org/core/appview/indexer/pulls"
+
"tangled.org/core/appview/mentions"
"tangled.org/core/appview/models"
"tangled.org/core/appview/notify"
"tangled.org/core/appview/oauth"
"tangled.org/core/appview/pages"
"tangled.org/core/appview/pages/markup"
"tangled.org/core/appview/pages/repoinfo"
"tangled.org/core/appview/reporesolver"
"tangled.org/core/appview/validator"
"tangled.org/core/appview/xrpcclient"
···
)
type Pulls struct {
+
oauth *oauth.OAuth
+
repoResolver *reporesolver.RepoResolver
+
pages *pages.Pages
+
idResolver *idresolver.Resolver
+
mentionsResolver *mentions.Resolver
+
db *db.DB
+
config *config.Config
+
notifier notify.Notifier
+
enforcer *rbac.Enforcer
+
logger *slog.Logger
+
validator *validator.Validator
+
indexer *pulls_indexer.Indexer
}
func New(
···
repoResolver *reporesolver.RepoResolver,
pages *pages.Pages,
resolver *idresolver.Resolver,
+
mentionsResolver *mentions.Resolver,
db *db.DB,
config *config.Config,
notifier notify.Notifier,
···
logger *slog.Logger,
) *Pulls {
return &Pulls{
+
oauth: oauth,
+
repoResolver: repoResolver,
+
pages: pages,
+
idResolver: resolver,
+
mentionsResolver: mentionsResolver,
+
db: db,
+
config: config,
+
notifier: notifier,
+
enforcer: enforcer,
+
logger: logger,
+
validator: validator,
+
indexer: indexer,
}
}
···
return
}
+
mentions, references := s.mentionsResolver.Resolve(r.Context(), body)
// Start a transaction
tx, err := s.db.BeginTx(r.Context(), nil)
···
}
}
+
mentions, references := s.mentionsResolver.Resolve(r.Context(), body)
rkey := tid.TID()
initialSubmission := models.PullSubmission{
···
body := fp.Body
rkey := tid.TID()
+
mentions, references := s.mentionsResolver.Resolve(ctx, body)
initialSubmission := models.PullSubmission{
Patch: fp.Raw,
+3 -1
appview/refresolver/resolver.go appview/mentions/resolver.go
···
-
package refresolver
import (
"context"
···
func (r *Resolver) Resolve(ctx context.Context, source string) ([]syntax.DID, []syntax.ATURI) {
l := r.logger.With("method", "Resolve")
rawMentions, rawRefs := markup.FindReferences(r.config.Core.AppviewHost, source)
l.Debug("found possible references", "mentions", rawMentions, "refs", rawRefs)
idents := r.idResolver.ResolveIdents(ctx, rawMentions)
var mentions []syntax.DID
for _, ident := range idents {
···
+
package mentions
import (
"context"
···
func (r *Resolver) Resolve(ctx context.Context, source string) ([]syntax.DID, []syntax.ATURI) {
l := r.logger.With("method", "Resolve")
+
rawMentions, rawRefs := markup.FindReferences(r.config.Core.AppviewHost, source)
l.Debug("found possible references", "mentions", rawMentions, "refs", rawRefs)
+
idents := r.idResolver.ResolveIdents(ctx, rawMentions)
var mentions []syntax.DID
for _, ident := range idents {
+2 -2
appview/state/router.go
···
s.enforcer,
s.pages,
s.idResolver,
-
s.refResolver,
s.db,
s.config,
s.notifier,
···
s.repoResolver,
s.pages,
s.idResolver,
-
s.refResolver,
s.db,
s.config,
s.notifier,
···
s.enforcer,
s.pages,
s.idResolver,
+
s.mentionsResolver,
s.db,
s.config,
s.notifier,
···
s.repoResolver,
s.pages,
s.idResolver,
+
s.mentionsResolver,
s.db,
s.config,
s.notifier,
+19 -19
appview/state/state.go
···
"tangled.org/core/appview/config"
"tangled.org/core/appview/db"
"tangled.org/core/appview/indexer"
"tangled.org/core/appview/models"
"tangled.org/core/appview/notify"
dbnotify "tangled.org/core/appview/notify/db"
phnotify "tangled.org/core/appview/notify/posthog"
"tangled.org/core/appview/oauth"
"tangled.org/core/appview/pages"
-
"tangled.org/core/appview/refresolver"
"tangled.org/core/appview/reporesolver"
"tangled.org/core/appview/validator"
xrpcclient "tangled.org/core/appview/xrpcclient"
···
)
type State struct {
-
db *db.DB
-
notifier notify.Notifier
-
indexer *indexer.Indexer
-
oauth *oauth.OAuth
-
enforcer *rbac.Enforcer
-
pages *pages.Pages
-
idResolver *idresolver.Resolver
-
refResolver *refresolver.Resolver
-
posthog posthog.Client
-
jc *jetstream.JetstreamClient
-
config *config.Config
-
repoResolver *reporesolver.RepoResolver
-
knotstream *eventconsumer.Consumer
-
spindlestream *eventconsumer.Consumer
-
logger *slog.Logger
-
validator *validator.Validator
}
func Make(ctx context.Context, config *config.Config) (*State, error) {
···
repoResolver := reporesolver.New(config, enforcer, d)
-
refResolver := refresolver.New(config, res, d, log.SubLogger(logger, "refResolver"))
wrapper := db.DbWrapper{Execer: d}
jc, err := jetstream.NewJetstreamClient(
···
enforcer,
pages,
res,
-
refResolver,
posthog,
jc,
config,
···
"tangled.org/core/appview/config"
"tangled.org/core/appview/db"
"tangled.org/core/appview/indexer"
+
"tangled.org/core/appview/mentions"
"tangled.org/core/appview/models"
"tangled.org/core/appview/notify"
dbnotify "tangled.org/core/appview/notify/db"
phnotify "tangled.org/core/appview/notify/posthog"
"tangled.org/core/appview/oauth"
"tangled.org/core/appview/pages"
"tangled.org/core/appview/reporesolver"
"tangled.org/core/appview/validator"
xrpcclient "tangled.org/core/appview/xrpcclient"
···
)
type State struct {
+
db *db.DB
+
notifier notify.Notifier
+
indexer *indexer.Indexer
+
oauth *oauth.OAuth
+
enforcer *rbac.Enforcer
+
pages *pages.Pages
+
idResolver *idresolver.Resolver
+
mentionsResolver *mentions.Resolver
+
posthog posthog.Client
+
jc *jetstream.JetstreamClient
+
config *config.Config
+
repoResolver *reporesolver.RepoResolver
+
knotstream *eventconsumer.Consumer
+
spindlestream *eventconsumer.Consumer
+
logger *slog.Logger
+
validator *validator.Validator
}
func Make(ctx context.Context, config *config.Config) (*State, error) {
···
repoResolver := reporesolver.New(config, enforcer, d)
+
mentionsResolver := mentions.New(config, res, d, log.SubLogger(logger, "mentionsResolver"))
wrapper := db.DbWrapper{Execer: d}
jc, err := jetstream.NewJetstreamClient(
···
enforcer,
pages,
res,
+
mentionsResolver,
posthog,
jc,
config,