···
-
if err := s.db.AddPublicKey(did, name, key); err != nil {
log.Printf("adding public key: %s", err)
···
log.Println("created atproto record: ", resp.Uri)
···
log.Println("checking ", domain)
-
secret, err := s.db.GetRegistrationKey(domain)
log.Printf("no key found for domain %s: %s\n", domain, err)
···
-
err = s.db.Register(domain)
log.Println("failed to register domain", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
-
// set permissions for this did as owner
-
reg, err := s.db.RegistrationByDomain(domain)
log.Println("failed to register domain", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
-
// add basic acls for this domain
err = s.enforcer.AddDomain(domain)
log.Println("failed to setup owner of domain", err)
···
-
// add this did as owner of this domain
err = s.enforcer.AddOwner(domain, reg.ByDid)
log.Println("failed to setup owner of domain", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
···
log.Printf("adding %s to %s\n", memberIdent.Handle.String(), domain)
-
// announce this relation into the firehose, store into owners' pds
-
client, _ := s.auth.AuthorizedClient(r)
-
currentUser := s.auth.GetUser(r)
-
addedAt := time.Now().Format(time.RFC3339)
-
resp, err := comatproto.RepoPutRecord(r.Context(), client, &comatproto.RepoPutRecord_Input{
-
Collection: tangled.KnotMemberNSID,
-
Record: &lexutil.LexiconTypeDecoder{
-
Val: &tangled.KnotMember{
-
Member: memberIdent.DID.String(),
-
log.Printf("failed to create record: %s", err)
-
log.Println("created atproto record: ", resp.Uri)
-
secret, err := s.db.GetRegistrationKey(domain)
log.Printf("no key found for domain %s: %s\n", domain, err)
ksClient, err := NewSignedClient(domain, secret)
log.Println("failed to create client to ", domain)
···
ksResp, err := ksClient.AddMember(memberIdent.DID.String(), []string{})
-
log.Printf("failet to make request to %s: %s", domain, err)
if ksResp.StatusCode != http.StatusNoContent {
···
err = s.enforcer.AddMember(domain, memberIdent.DID.String())
w.Write([]byte(fmt.Sprint("failed to add member: ", err)))
w.Write([]byte(fmt.Sprint("added member: ", memberIdent.Handle.String())))
···
-
secret, err := s.db.GetRegistrationKey(domain)
log.Printf("no key found for domain %s: %s\n", domain, err)
···
client, err := NewSignedClient(domain, secret)
log.Println("failed to create client to ", domain)
resp, err := client.NewRepo(user.Did, repoName)
···
-
err = s.db.AddRepo(repo)
log.Println("failed to add repo to db", err)
err = s.enforcer.AddRepo(user.Did, domain, filepath.Join(user.Did, repoName))
log.Println("failed to set up acls", err)
···
+
tx, err := s.db.Db.Begin()
+
log.Printf("failed to start transaction: %s", err)
+
http.Error(w, "Internal server error", http.StatusInternalServerError)
+
defer tx.Rollback() // Will rollback if not committed
+
if err := s.db.AddPublicKeyTx(tx, did, name, key); err != nil {
log.Printf("adding public key: %s", err)
···
+
// If everything succeeded, commit the transaction
+
if err := tx.Commit(); err != nil {
+
log.Printf("failed to commit transaction: %s", err)
+
http.Error(w, "Internal server error", http.StatusInternalServerError)
log.Println("created atproto record: ", resp.Uri)
···
log.Println("checking ", domain)
+
tx, err := s.db.Db.Begin()
+
log.Printf("failed to start transaction: %s", err)
+
http.Error(w, "Internal server error", http.StatusInternalServerError)
+
defer tx.Rollback() // Will rollback if not committed
+
secret, err := s.db.GetRegistrationKeyTx(tx, domain)
log.Printf("no key found for domain %s: %s\n", domain, err)
···
+
// mark as registered within transaction
+
err = s.db.RegisterTx(tx, domain)
log.Println("failed to register domain", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
+
// set permissions for this did as owner within transaction
+
reg, err := s.db.RegistrationByDomainTx(tx, domain)
log.Println("failed to register domain", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
+
// add basic acls for this domain within transaction
err = s.enforcer.AddDomain(domain)
log.Println("failed to setup owner of domain", err)
···
+
// add this did as owner of this domain within transaction
err = s.enforcer.AddOwner(domain, reg.ByDid)
log.Println("failed to setup owner of domain", err)
http.Error(w, err.Error(), http.StatusInternalServerError)
+
if err := tx.Commit(); err != nil {
+
log.Printf("failed to commit transaction: %s", err)
+
http.Error(w, "Internal server error", http.StatusInternalServerError)
···
log.Printf("adding %s to %s\n", memberIdent.Handle.String(), domain)
+
tx, err := s.db.Db.Begin()
+
log.Printf("failed to start transaction: %s", err)
+
http.Error(w, "Internal server error", http.StatusInternalServerError)
+
defer tx.Rollback() // Will rollback if not committed
+
// Get registration key within transaction
+
secret, err := s.db.GetRegistrationKeyTx(tx, domain)
log.Printf("no key found for domain %s: %s\n", domain, err)
+
// Make the external call to the knot server
ksClient, err := NewSignedClient(domain, secret)
log.Println("failed to create client to ", domain)
···
ksResp, err := ksClient.AddMember(memberIdent.DID.String(), []string{})
+
log.Printf("failed to make request to %s: %s", domain, err)
if ksResp.StatusCode != http.StatusNoContent {
···
+
// Create ATProto record within transaction
+
client, _ := s.auth.AuthorizedClient(r)
+
currentUser := s.auth.GetUser(r)
+
addedAt := time.Now().Format(time.RFC3339)
+
resp, err := comatproto.RepoPutRecord(r.Context(), client, &comatproto.RepoPutRecord_Input{
+
Collection: tangled.KnotMemberNSID,
+
Record: &lexutil.LexiconTypeDecoder{
+
Val: &tangled.KnotMember{
+
Member: memberIdent.DID.String(),
+
log.Printf("failed to create record: %s", err)
+
// Update RBAC within transaction
err = s.enforcer.AddMember(domain, memberIdent.DID.String())
w.Write([]byte(fmt.Sprint("failed to add member: ", err)))
+
// If everything succeeded, commit the transaction
+
if err := tx.Commit(); err != nil {
+
log.Printf("failed to commit transaction: %s", err)
+
http.Error(w, "Internal server error", http.StatusInternalServerError)
+
log.Println("created atproto record: ", resp.Uri)
w.Write([]byte(fmt.Sprint("added member: ", memberIdent.Handle.String())))
···
+
tx, err := s.db.Db.Begin()
+
log.Printf("failed to start transaction: %s", err)
+
http.Error(w, "Internal server error", http.StatusInternalServerError)
+
defer tx.Rollback() // Will rollback if not committed
+
secret, err := s.db.GetRegistrationKeyTx(tx, domain)
log.Printf("no key found for domain %s: %s\n", domain, err)
···
client, err := NewSignedClient(domain, secret)
log.Println("failed to create client to ", domain)
resp, err := client.NewRepo(user.Did, repoName)
···
+
// add to local db within transaction
+
err = s.db.AddRepoTx(tx, repo)
log.Println("failed to add repo to db", err)
+
// acls within transaction
err = s.enforcer.AddRepo(user.Did, domain, filepath.Join(user.Did, repoName))
log.Println("failed to set up acls", err)
+
if err := tx.Commit(); err != nil {
+
log.Printf("failed to commit transaction: %s", err)
+
http.Error(w, "Internal server error", http.StatusInternalServerError)