mirror of
				https://github.com/superseriousbusiness/gotosocial
				synced 2025-06-05 21:59:39 +02:00 
			
		
		
		
	[chore] Use generic pointer function (#2080)
This replaces the different $TypePtr functions with a generic implementation.
This commit is contained in:
		| @@ -31,6 +31,7 @@ import ( | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/gtsmodel" | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/log" | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/messages" | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/util" | ||||
| 	"golang.org/x/crypto/bcrypt" | ||||
| ) | ||||
|  | ||||
| @@ -427,10 +428,8 @@ func (p *Processor) deleteAccountPeripheral(ctx context.Context, account *gtsmod | ||||
| // names of all columns that are updated by it. | ||||
| func stubbifyAccount(account *gtsmodel.Account, origin string) []string { | ||||
| 	var ( | ||||
| 		falseBool = func() *bool { b := false; return &b } | ||||
| 		trueBool  = func() *bool { b := true; return &b } | ||||
| 		now       = time.Now() | ||||
| 		never     = time.Time{} | ||||
| 		now   = time.Now() | ||||
| 		never = time.Time{} | ||||
| 	) | ||||
|  | ||||
| 	account.FetchedAt = never | ||||
| @@ -444,17 +443,17 @@ func stubbifyAccount(account *gtsmodel.Account, origin string) []string { | ||||
| 	account.Fields = nil | ||||
| 	account.Note = "" | ||||
| 	account.NoteRaw = "" | ||||
| 	account.Memorial = falseBool() | ||||
| 	account.Memorial = util.Ptr(false) | ||||
| 	account.AlsoKnownAs = "" | ||||
| 	account.MovedToAccountID = "" | ||||
| 	account.Reason = "" | ||||
| 	account.Discoverable = falseBool() | ||||
| 	account.Discoverable = util.Ptr(false) | ||||
| 	account.StatusContentType = "" | ||||
| 	account.CustomCSS = "" | ||||
| 	account.SuspendedAt = now | ||||
| 	account.SuspensionOrigin = origin | ||||
| 	account.HideCollections = trueBool() | ||||
| 	account.EnableRSS = falseBool() | ||||
| 	account.HideCollections = util.Ptr(true) | ||||
| 	account.EnableRSS = util.Ptr(false) | ||||
|  | ||||
| 	return []string{ | ||||
| 		"fetched_at", | ||||
|   | ||||
| @@ -23,7 +23,7 @@ import ( | ||||
|  | ||||
| 	"github.com/stretchr/testify/suite" | ||||
| 	apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" | ||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/util" | ||||
| ) | ||||
|  | ||||
| type FollowTestSuite struct { | ||||
| @@ -40,10 +40,9 @@ func (suite *FollowTestSuite) TestUpdateExistingFollowChangeBoth() { | ||||
| 	//	UPDATE "follows" AS "follow" SET "show_reblogs" = FALSE, "notify" = TRUE, "updated_at" = '2023-04-09 11:42:39.424705+00:00' WHERE ("follow"."id" = '01F8PY8RHWRQZV038T4E8T9YK8') | ||||
| 	relationship, err := suite.accountProcessor.FollowCreate(ctx, requestingAccount, &apimodel.AccountFollowRequest{ | ||||
| 		ID:      targetAccount.ID, | ||||
| 		Reblogs: testrig.FalseBool(), | ||||
| 		Notify:  testrig.TrueBool(), | ||||
| 		Reblogs: util.Ptr(false), | ||||
| 		Notify:  util.Ptr(true), | ||||
| 	}) | ||||
|  | ||||
| 	if err != nil { | ||||
| 		suite.FailNow(err.Error()) | ||||
| 	} | ||||
| @@ -62,9 +61,8 @@ func (suite *FollowTestSuite) TestUpdateExistingFollowChangeNotifyIgnoreReblogs( | ||||
| 	//	UPDATE "follows" AS "follow" SET "notify" = TRUE, "updated_at" = '2023-04-09 11:40:33.827858+00:00' WHERE ("follow"."id" = '01F8PY8RHWRQZV038T4E8T9YK8') | ||||
| 	relationship, err := suite.accountProcessor.FollowCreate(ctx, requestingAccount, &apimodel.AccountFollowRequest{ | ||||
| 		ID:     targetAccount.ID, | ||||
| 		Notify: testrig.TrueBool(), | ||||
| 		Notify: util.Ptr(true), | ||||
| 	}) | ||||
|  | ||||
| 	if err != nil { | ||||
| 		suite.FailNow(err.Error()) | ||||
| 	} | ||||
| @@ -83,10 +81,9 @@ func (suite *FollowTestSuite) TestUpdateExistingFollowChangeNotifySetReblogs() { | ||||
| 	//	UPDATE "follows" AS "follow" SET "notify" = TRUE, "updated_at" = '2023-04-09 11:40:33.827858+00:00' WHERE ("follow"."id" = '01F8PY8RHWRQZV038T4E8T9YK8') | ||||
| 	relationship, err := suite.accountProcessor.FollowCreate(ctx, requestingAccount, &apimodel.AccountFollowRequest{ | ||||
| 		ID:      targetAccount.ID, | ||||
| 		Notify:  testrig.TrueBool(), | ||||
| 		Reblogs: testrig.TrueBool(), | ||||
| 		Notify:  util.Ptr(true), | ||||
| 		Reblogs: util.Ptr(true), | ||||
| 	}) | ||||
|  | ||||
| 	if err != nil { | ||||
| 		suite.FailNow(err.Error()) | ||||
| 	} | ||||
| @@ -104,10 +101,9 @@ func (suite *FollowTestSuite) TestUpdateExistingFollowChangeNothing() { | ||||
| 	// Trace logs should show no update query. | ||||
| 	relationship, err := suite.accountProcessor.FollowCreate(ctx, requestingAccount, &apimodel.AccountFollowRequest{ | ||||
| 		ID:      targetAccount.ID, | ||||
| 		Notify:  testrig.FalseBool(), | ||||
| 		Reblogs: testrig.TrueBool(), | ||||
| 		Notify:  util.Ptr(false), | ||||
| 		Reblogs: util.Ptr(true), | ||||
| 	}) | ||||
|  | ||||
| 	if err != nil { | ||||
| 		suite.FailNow(err.Error()) | ||||
| 	} | ||||
| @@ -126,7 +122,6 @@ func (suite *FollowTestSuite) TestUpdateExistingFollowSetNothing() { | ||||
| 	relationship, err := suite.accountProcessor.FollowCreate(ctx, requestingAccount, &apimodel.AccountFollowRequest{ | ||||
| 		ID: targetAccount.ID, | ||||
| 	}) | ||||
|  | ||||
| 	if err != nil { | ||||
| 		suite.FailNow(err.Error()) | ||||
| 	} | ||||
|   | ||||
| @@ -30,6 +30,7 @@ import ( | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/gtsmodel" | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/messages" | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/stream" | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/util" | ||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | ||||
| ) | ||||
|  | ||||
| @@ -63,20 +64,20 @@ func (suite *FromClientAPITestSuite) TestProcessStreamNewStatus() { | ||||
| 		EmojiIDs:                 []string{}, | ||||
| 		CreatedAt:                testrig.TimeMustParse("2021-10-20T11:36:45Z"), | ||||
| 		UpdatedAt:                testrig.TimeMustParse("2021-10-20T11:36:45Z"), | ||||
| 		Local:                    testrig.TrueBool(), | ||||
| 		Local:                    util.Ptr(true), | ||||
| 		AccountURI:               "http://localhost:8080/users/admin", | ||||
| 		AccountID:                "01F8MH17FWEB39HZJ76B6VXSKF", | ||||
| 		InReplyToID:              "", | ||||
| 		BoostOfID:                "", | ||||
| 		ContentWarning:           "", | ||||
| 		Visibility:               gtsmodel.VisibilityFollowersOnly, | ||||
| 		Sensitive:                testrig.FalseBool(), | ||||
| 		Sensitive:                util.Ptr(false), | ||||
| 		Language:                 "en", | ||||
| 		CreatedWithApplicationID: "01F8MGXQRHYF5QPMTMXP78QC2F", | ||||
| 		Federated:                testrig.FalseBool(), | ||||
| 		Boostable:                testrig.TrueBool(), | ||||
| 		Replyable:                testrig.TrueBool(), | ||||
| 		Likeable:                 testrig.TrueBool(), | ||||
| 		Federated:                util.Ptr(false), | ||||
| 		Boostable:                util.Ptr(true), | ||||
| 		Replyable:                util.Ptr(true), | ||||
| 		Likeable:                 util.Ptr(true), | ||||
| 		ActivityStreamsType:      ap.ObjectNote, | ||||
| 	} | ||||
|  | ||||
| @@ -189,7 +190,7 @@ func (suite *FromClientAPITestSuite) TestProcessNewStatusWithNotification() { | ||||
| 	// that receiving account wants notifs when posting account posts. | ||||
| 	follow := >smodel.Follow{} | ||||
| 	*follow = *suite.testFollows["local_account_1_admin_account"] | ||||
| 	follow.Notify = testrig.TrueBool() | ||||
| 	follow.Notify = util.Ptr(true) | ||||
| 	if err := suite.db.UpdateFollow(ctx, follow); err != nil { | ||||
| 		suite.FailNow(err.Error()) | ||||
| 	} | ||||
| @@ -206,20 +207,20 @@ func (suite *FromClientAPITestSuite) TestProcessNewStatusWithNotification() { | ||||
| 		EmojiIDs:                 []string{}, | ||||
| 		CreatedAt:                testrig.TimeMustParse("2021-10-20T11:36:45Z"), | ||||
| 		UpdatedAt:                testrig.TimeMustParse("2021-10-20T11:36:45Z"), | ||||
| 		Local:                    testrig.TrueBool(), | ||||
| 		Local:                    util.Ptr(true), | ||||
| 		AccountURI:               "http://localhost:8080/users/admin", | ||||
| 		AccountID:                "01F8MH17FWEB39HZJ76B6VXSKF", | ||||
| 		InReplyToID:              "", | ||||
| 		BoostOfID:                "", | ||||
| 		ContentWarning:           "", | ||||
| 		Visibility:               gtsmodel.VisibilityFollowersOnly, | ||||
| 		Sensitive:                testrig.FalseBool(), | ||||
| 		Sensitive:                util.Ptr(false), | ||||
| 		Language:                 "en", | ||||
| 		CreatedWithApplicationID: "01F8MGXQRHYF5QPMTMXP78QC2F", | ||||
| 		Federated:                testrig.FalseBool(), | ||||
| 		Boostable:                testrig.TrueBool(), | ||||
| 		Replyable:                testrig.TrueBool(), | ||||
| 		Likeable:                 testrig.TrueBool(), | ||||
| 		Federated:                util.Ptr(false), | ||||
| 		Boostable:                util.Ptr(true), | ||||
| 		Replyable:                util.Ptr(true), | ||||
| 		Likeable:                 util.Ptr(true), | ||||
| 		ActivityStreamsType:      ap.ObjectNote, | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -32,6 +32,7 @@ import ( | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/id" | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/messages" | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/stream" | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/util" | ||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | ||||
| ) | ||||
|  | ||||
| @@ -110,10 +111,10 @@ func (suite *FromFederatorTestSuite) TestProcessReplyMention() { | ||||
| 		InReplyToAccountID:  repliedAccount.ID, | ||||
| 		Visibility:          gtsmodel.VisibilityUnlocked, | ||||
| 		ActivityStreamsType: ap.ObjectNote, | ||||
| 		Federated:           testrig.TrueBool(), | ||||
| 		Boostable:           testrig.TrueBool(), | ||||
| 		Replyable:           testrig.TrueBool(), | ||||
| 		Likeable:            testrig.FalseBool(), | ||||
| 		Federated:           util.Ptr(true), | ||||
| 		Boostable:           util.Ptr(true), | ||||
| 		Replyable:           util.Ptr(true), | ||||
| 		Likeable:            util.Ptr(false), | ||||
| 	} | ||||
|  | ||||
| 	wssStream, errWithCode := suite.processor.Stream().Open(context.Background(), repliedAccount, stream.TimelineHome) | ||||
| @@ -317,9 +318,9 @@ func (suite *FromFederatorTestSuite) TestProcessAccountDelete() { | ||||
| 		UpdatedAt:       time.Now().Add(-1 * time.Hour), | ||||
| 		AccountID:       deletedAccount.ID, | ||||
| 		TargetAccountID: receivingAccount.ID, | ||||
| 		ShowReblogs:     testrig.TrueBool(), | ||||
| 		ShowReblogs:     util.Ptr(true), | ||||
| 		URI:             fmt.Sprintf("%s/follows/01FGRY72ASHBSET64353DPHK9T", deletedAccount.URI), | ||||
| 		Notify:          testrig.FalseBool(), | ||||
| 		Notify:          util.Ptr(false), | ||||
| 	} | ||||
| 	err := suite.db.Put(ctx, zorkFollowSatan) | ||||
| 	suite.NoError(err) | ||||
| @@ -330,9 +331,9 @@ func (suite *FromFederatorTestSuite) TestProcessAccountDelete() { | ||||
| 		UpdatedAt:       time.Now().Add(-1 * time.Hour), | ||||
| 		AccountID:       receivingAccount.ID, | ||||
| 		TargetAccountID: deletedAccount.ID, | ||||
| 		ShowReblogs:     testrig.TrueBool(), | ||||
| 		ShowReblogs:     util.Ptr(true), | ||||
| 		URI:             fmt.Sprintf("%s/follows/01FGRYAVAWWPP926J175QGM0WV", receivingAccount.URI), | ||||
| 		Notify:          testrig.FalseBool(), | ||||
| 		Notify:          util.Ptr(false), | ||||
| 	} | ||||
| 	err = suite.db.Put(ctx, satanFollowZork) | ||||
| 	suite.NoError(err) | ||||
| @@ -405,9 +406,9 @@ func (suite *FromFederatorTestSuite) TestProcessFollowRequestLocked() { | ||||
| 		Account:         originAccount, | ||||
| 		TargetAccountID: targetAccount.ID, | ||||
| 		TargetAccount:   targetAccount, | ||||
| 		ShowReblogs:     testrig.TrueBool(), | ||||
| 		ShowReblogs:     util.Ptr(true), | ||||
| 		URI:             fmt.Sprintf("%s/follows/01FGRYAVAWWPP926J175QGM0WV", originAccount.URI), | ||||
| 		Notify:          testrig.FalseBool(), | ||||
| 		Notify:          util.Ptr(false), | ||||
| 	} | ||||
|  | ||||
| 	err := suite.db.Put(ctx, satanFollowRequestTurtle) | ||||
| @@ -462,9 +463,9 @@ func (suite *FromFederatorTestSuite) TestProcessFollowRequestUnlocked() { | ||||
| 		Account:         originAccount, | ||||
| 		TargetAccountID: targetAccount.ID, | ||||
| 		TargetAccount:   targetAccount, | ||||
| 		ShowReblogs:     testrig.TrueBool(), | ||||
| 		ShowReblogs:     util.Ptr(true), | ||||
| 		URI:             fmt.Sprintf("%s/follows/01FGRYAVAWWPP926J175QGM0WV", originAccount.URI), | ||||
| 		Notify:          testrig.FalseBool(), | ||||
| 		Notify:          util.Ptr(false), | ||||
| 	} | ||||
|  | ||||
| 	err := suite.db.Put(ctx, satanFollowRequestTurtle) | ||||
|   | ||||
| @@ -28,6 +28,7 @@ import ( | ||||
| 	apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/gtsmodel" | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/media" | ||||
| 	"github.com/superseriousbusiness/gotosocial/internal/util" | ||||
| 	"github.com/superseriousbusiness/gotosocial/testrig" | ||||
| ) | ||||
|  | ||||
| @@ -68,7 +69,7 @@ func (suite *GetFileTestSuite) TestGetRemoteFileUncached() { | ||||
|  | ||||
| 	// uncache the file from local | ||||
| 	testAttachment := suite.testAttachments["remote_account_1_status_1_attachment_1"] | ||||
| 	testAttachment.Cached = testrig.FalseBool() | ||||
| 	testAttachment.Cached = util.Ptr(false) | ||||
| 	err := suite.db.UpdateByID(ctx, testAttachment, testAttachment.ID, "cached") | ||||
| 	suite.NoError(err) | ||||
| 	err = suite.storage.Delete(ctx, testAttachment.File.Path) | ||||
| @@ -120,7 +121,7 @@ func (suite *GetFileTestSuite) TestGetRemoteFileUncachedInterrupted() { | ||||
|  | ||||
| 	// uncache the file from local | ||||
| 	testAttachment := suite.testAttachments["remote_account_1_status_1_attachment_1"] | ||||
| 	testAttachment.Cached = testrig.FalseBool() | ||||
| 	testAttachment.Cached = util.Ptr(false) | ||||
| 	err := suite.db.UpdateByID(ctx, testAttachment, testAttachment.ID, "cached") | ||||
| 	suite.NoError(err) | ||||
| 	err = suite.storage.Delete(ctx, testAttachment.File.Path) | ||||
| @@ -177,7 +178,7 @@ func (suite *GetFileTestSuite) TestGetRemoteFileThumbnailUncached() { | ||||
| 	suite.NoError(err) | ||||
|  | ||||
| 	// uncache the file from local | ||||
| 	testAttachment.Cached = testrig.FalseBool() | ||||
| 	testAttachment.Cached = util.Ptr(false) | ||||
| 	err = suite.db.UpdateByID(ctx, testAttachment, testAttachment.ID, "cached") | ||||
| 	suite.NoError(err) | ||||
| 	err = suite.storage.Delete(ctx, testAttachment.File.Path) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user