tangled
alpha
login
or
join now
back
interdiff of round #3 and #2
appview: ingest issue/comment update and delete
#526
merged
opened by
anirudh.fi
4 months ago
targeting
master
from
push-wnotmtoqlnvl
Also adds the relevant DB helpers for this.
Signed-off-by: Anirudh Oppiliappan
anirudh@tangled.sh
options
unified
split
files
api
tangled
cbor_gen.go
appview
db
issues.go
ingester.go
REVERTED
appview/db/issues.go
···
626
return err
627
}
628
629
-
func UpdateCommentByRkey(e Execer, ownerDid, rkey, newBody string) error {
630
-
_, err := e.Exec(
631
-
`
632
-
update comments
633
-
set body = ?,
634
-
edited = strftime('%Y-%m-%dT%H:%M:%SZ', 'now')
635
-
where owner_did = ? and rkey = ?
636
-
`, newBody, ownerDid, rkey)
637
-
return err
638
-
}
639
-
640
func DeleteCommentByRkey(e Execer, ownerDid, rkey string) error {
641
_, err := e.Exec(
642
`
···
648
return err
649
}
650
651
-
func UpdateIssueByRkey(e Execer, ownerDid, rkey, title, body string) error {
652
-
_, err := e.Exec(`update issues set title = ?, body = ? where owner_did = ? and rkey = ?`, title, body, ownerDid, rkey)
653
-
return err
654
-
}
655
-
656
-
func DeleteIssueByRkey(e Execer, ownerDid, rkey string) error {
657
-
_, err := e.Exec(`delete from issues where owner_did = ? and rkey = ?`, ownerDid, rkey)
658
-
return err
659
-
}
660
-
661
func CloseIssue(e Execer, repoAt syntax.ATURI, issueId int) error {
662
_, err := e.Exec(`update issues set open = 0 where repo_at = ? and issue_id = ?`, repoAt, issueId)
663
return err
···
626
return err
627
}
628
0
0
0
0
0
0
0
0
0
0
0
629
func DeleteCommentByRkey(e Execer, ownerDid, rkey string) error {
630
_, err := e.Exec(
631
`
···
637
return err
638
}
639
0
0
0
0
0
0
0
0
0
0
640
func CloseIssue(e Execer, repoAt syntax.ATURI, issueId int) error {
641
_, err := e.Exec(`update issues set open = 0 where repo_at = ? and issue_id = ?`, repoAt, issueId)
642
return err
REVERTED
appview/ingester.go
···
824
return nil
825
826
case models.CommitOperationUpdate:
0
827
-
raw := json.RawMessage(e.Commit.Record)
828
-
record := tangled.RepoIssue{}
829
-
err = json.Unmarshal(raw, &record)
830
-
if err != nil {
831
-
l.Error("invalid record", "err", err)
832
-
return err
833
-
}
834
-
835
-
body := ""
836
-
if record.Body != nil {
837
-
body = *record.Body
838
-
}
839
-
840
-
sanitizer := markup.NewSanitizer()
841
-
if st := strings.TrimSpace(sanitizer.SanitizeDescription(record.Title)); st == "" {
842
-
return fmt.Errorf("title is empty after HTML sanitization")
843
-
}
844
-
if sb := strings.TrimSpace(sanitizer.SanitizeDefault(body)); sb == "" {
845
-
return fmt.Errorf("body is empty after HTML sanitization")
846
-
}
847
-
848
-
err = db.UpdateIssueByRkey(ddb, did, rkey, record.Title, body)
849
-
if err != nil {
850
-
l.Error("failed to update issue", "err", err)
851
-
return err
852
-
}
853
-
854
return nil
855
856
case models.CommitOperationDelete:
0
857
-
if err := db.DeleteIssueByRkey(ddb, did, rkey); err != nil {
858
-
l.Error("failed to delete", "err", err)
859
-
return fmt.Errorf("failed to delete issue record: %w", err)
860
-
}
861
-
862
return nil
863
}
864
···
909
return nil
910
911
case models.CommitOperationUpdate:
0
912
-
raw := json.RawMessage(e.Commit.Record)
913
-
record := tangled.RepoIssueComment{}
914
-
err = json.Unmarshal(raw, &record)
915
-
if err != nil {
916
-
l.Error("invalid record", "err", err)
917
-
return err
918
-
}
919
-
920
-
sanitizer := markup.NewSanitizer()
921
-
if sb := strings.TrimSpace(sanitizer.SanitizeDefault(record.Body)); sb == "" {
922
-
return fmt.Errorf("body is empty after HTML sanitization")
923
-
}
924
-
925
-
err = db.UpdateCommentByRkey(ddb, did, rkey, record.Body)
926
-
if err != nil {
927
-
l.Error("failed to update issue comment", "err", err)
928
-
return err
929
-
}
930
-
931
return nil
932
933
case models.CommitOperationDelete:
···
824
return nil
825
826
case models.CommitOperationUpdate:
827
+
// TODO: implement updates
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
828
return nil
829
830
case models.CommitOperationDelete:
831
+
// TODO: implement issue deletion
0
0
0
0
0
832
return nil
833
}
834
···
879
return nil
880
881
case models.CommitOperationUpdate:
882
+
// TODO: implement comment updates
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
883
return nil
884
885
case models.CommitOperationDelete:
NEW
api/tangled/cbor_gen.go
···
5726
return err
5727
}
5728
5729
-
// t.Owner (string) (string)
5730
-
if len("owner") > 1000000 {
5731
-
return xerrors.Errorf("Value in field \"owner\" was too long")
5732
-
}
5733
-
5734
-
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len("owner"))); err != nil {
5735
-
return err
5736
-
}
5737
-
if _, err := cw.WriteString(string("owner")); err != nil {
5738
-
return err
5739
-
}
5740
-
5741
-
if len(t.Owner) > 1000000 {
5742
-
return xerrors.Errorf("Value in field t.Owner was too long")
5743
-
}
5744
-
5745
-
if err := cw.WriteMajorTypeHeader(cbg.MajTextString, uint64(len(t.Owner))); err != nil {
5746
-
return err
5747
-
}
5748
-
if _, err := cw.WriteString(string(t.Owner)); err != nil {
5749
-
return err
5750
-
}
5751
-
5752
// t.Title (string) (string)
5753
if len("title") > 1000000 {
5754
return xerrors.Errorf("Value in field \"title\" was too long")
···
5881
5882
t.LexiconTypeID = string(sval)
5883
}
5884
-
// t.Owner (string) (string)
5885
-
case "owner":
5886
-
5887
-
{
5888
-
sval, err := cbg.ReadStringWithMax(cr, 1000000)
5889
-
if err != nil {
5890
-
return err
5891
-
}
5892
-
5893
-
t.Owner = string(sval)
5894
-
}
5895
// t.Title (string) (string)
5896
case "title":
5897
···
5726
return err
5727
}
5728
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5729
// t.Title (string) (string)
5730
if len("title") > 1000000 {
5731
return xerrors.Errorf("Value in field \"title\" was too long")
···
5858
5859
t.LexiconTypeID = string(sval)
5860
}
0
0
0
0
0
0
0
0
0
0
0
5861
// t.Title (string) (string)
5862
case "title":
5863