feat(postgres): added AddUserWithRelationToSource
This commit is contained in:
parent
78777ce7be
commit
c04e382ee5
61
internal/postgres/user.go
Normal file
61
internal/postgres/user.go
Normal file
@ -0,0 +1,61 @@
|
||||
package postgres
|
||||
|
||||
import (
|
||||
"context"
|
||||
"git.dragse.it/anthrove/otter-space-sdk/pkg/models"
|
||||
"git.dragse.it/anthrove/otter-space-sdk/pkg/models/pgModels"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func CreateUserNodeWithSourceRelation(ctx context.Context, db *gorm.DB, anthroveUserID models.AnthroveUserID, sourceDomain string, userID string, username string) error {
|
||||
user := pgModels.User{
|
||||
BaseModel: pgModels.BaseModel{
|
||||
ID: string(anthroveUserID),
|
||||
},
|
||||
}
|
||||
|
||||
if err := db.WithContext(ctx).FirstOrCreate(&user).Error; err != nil {
|
||||
log.WithFields(log.Fields{
|
||||
"anthrove_user_id": anthroveUserID,
|
||||
}).Error("database: failed to find or create user")
|
||||
return err
|
||||
}
|
||||
|
||||
source := pgModels.Source{
|
||||
Domain: sourceDomain,
|
||||
}
|
||||
|
||||
if err := db.WithContext(ctx).Where(&source).First(&source).Error; err != nil {
|
||||
log.WithFields(log.Fields{
|
||||
"source_domain": sourceDomain,
|
||||
}).Error("database: failed to find source")
|
||||
return err
|
||||
}
|
||||
|
||||
userSource := pgModels.UserSource{
|
||||
UserID: user.ID,
|
||||
SourceID: source.ID,
|
||||
AccountUsername: username,
|
||||
AccountID: userID,
|
||||
}
|
||||
|
||||
if err := db.WithContext(ctx).Create(&userSource).Error; err != nil {
|
||||
log.WithFields(log.Fields{
|
||||
"anthrove_user_id": anthroveUserID,
|
||||
"source_domain": sourceDomain,
|
||||
"account_username": username,
|
||||
"account_id": userID,
|
||||
}).Error("database: failed to create user-source relationship")
|
||||
return err
|
||||
}
|
||||
|
||||
log.WithFields(log.Fields{
|
||||
"anthrove_user_id": anthroveUserID,
|
||||
"source_domain": sourceDomain,
|
||||
"account_username": username,
|
||||
"account_id": userID,
|
||||
}).Trace("database: created user-source relationship")
|
||||
|
||||
return nil
|
||||
}
|
@ -54,8 +54,7 @@ func (p *postgresqlConnection) Connect(_ context.Context, endpoint string, usern
|
||||
}
|
||||
|
||||
func (p *postgresqlConnection) AddUserWithRelationToSource(ctx context.Context, anthroveUserID models.AnthroveUserID, sourceDomain string, userID string, username string) error {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
return postgres.CreateUserNodeWithSourceRelation(ctx, p.db, anthroveUserID, userID, sourceDomain, userID)
|
||||
}
|
||||
|
||||
func (p *postgresqlConnection) AddSource(ctx context.Context, anthroveSource *graphModels.AnthroveSource) error {
|
||||
|
Reference in New Issue
Block a user