mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-03 18:12:25 -06:00 
			
		
		
		
	[bugfix] incorrect /api/v_/instance domain uri fields (#3477)
* update instance v1 / v2 endpoints to set uri / domain correctly (i.e. account domain) * fix tests relying on old instance behaviour
This commit is contained in:
		
					parent
					
						
							
								8a93300ac4
							
						
					
				
			
			
				commit
				
					
						d8a83860bc
					
				
			
		
					 3 changed files with 23 additions and 11 deletions
				
			
		| 
						 | 
				
			
			@ -80,7 +80,7 @@ func (suite *InstancePatchTestSuite) TestInstancePatch1() {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	suite.Equal(`{
 | 
			
		||||
  "uri": "http://localhost:8080",
 | 
			
		||||
  "uri": "localhost:8080",
 | 
			
		||||
  "account_domain": "localhost:8080",
 | 
			
		||||
  "title": "Example Instance",
 | 
			
		||||
  "description": "<p>Here's a fuller description of the GoToSocial testrig instance.</p><p>This instance is for testing purposes only. It doesn't federate at all. Go check out <a href=\"https://github.com/superseriousbusiness/gotosocial/tree/main/testrig\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/superseriousbusiness/gotosocial/tree/main/testrig</a> and <a href=\"https://github.com/superseriousbusiness/gotosocial/blob/main/CONTRIBUTING.md#testing\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/superseriousbusiness/gotosocial/blob/main/CONTRIBUTING.md#testing</a></p><p>Users on this instance:</p><ul><li><span class=\"h-card\"><a href=\"http://localhost:8080/@admin\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>admin</span></a></span> (admin!).</li><li><span class=\"h-card\"><a href=\"http://localhost:8080/@1happyturtle\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>1happyturtle</span></a></span> (posts about turtles, we don't know why).</li><li><span class=\"h-card\"><a href=\"http://localhost:8080/@the_mighty_zork\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>the_mighty_zork</span></a></span> (who knows).</li></ul><p>If you need to edit the models for the testrig, you can do so at <code>internal/testmodels.go</code>.</p>",
 | 
			
		||||
| 
						 | 
				
			
			@ -221,7 +221,7 @@ func (suite *InstancePatchTestSuite) TestInstancePatch2() {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	suite.Equal(`{
 | 
			
		||||
  "uri": "http://localhost:8080",
 | 
			
		||||
  "uri": "localhost:8080",
 | 
			
		||||
  "account_domain": "localhost:8080",
 | 
			
		||||
  "title": "Geoff's Instance",
 | 
			
		||||
  "description": "<p>Here's a fuller description of the GoToSocial testrig instance.</p><p>This instance is for testing purposes only. It doesn't federate at all. Go check out <a href=\"https://github.com/superseriousbusiness/gotosocial/tree/main/testrig\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/superseriousbusiness/gotosocial/tree/main/testrig</a> and <a href=\"https://github.com/superseriousbusiness/gotosocial/blob/main/CONTRIBUTING.md#testing\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/superseriousbusiness/gotosocial/blob/main/CONTRIBUTING.md#testing</a></p><p>Users on this instance:</p><ul><li><span class=\"h-card\"><a href=\"http://localhost:8080/@admin\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>admin</span></a></span> (admin!).</li><li><span class=\"h-card\"><a href=\"http://localhost:8080/@1happyturtle\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>1happyturtle</span></a></span> (posts about turtles, we don't know why).</li><li><span class=\"h-card\"><a href=\"http://localhost:8080/@the_mighty_zork\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>the_mighty_zork</span></a></span> (who knows).</li></ul><p>If you need to edit the models for the testrig, you can do so at <code>internal/testmodels.go</code>.</p>",
 | 
			
		||||
| 
						 | 
				
			
			@ -362,7 +362,7 @@ func (suite *InstancePatchTestSuite) TestInstancePatch3() {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	suite.Equal(`{
 | 
			
		||||
  "uri": "http://localhost:8080",
 | 
			
		||||
  "uri": "localhost:8080",
 | 
			
		||||
  "account_domain": "localhost:8080",
 | 
			
		||||
  "title": "GoToSocial Testrig Instance",
 | 
			
		||||
  "description": "<p>Here's a fuller description of the GoToSocial testrig instance.</p><p>This instance is for testing purposes only. It doesn't federate at all. Go check out <a href=\"https://github.com/superseriousbusiness/gotosocial/tree/main/testrig\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/superseriousbusiness/gotosocial/tree/main/testrig</a> and <a href=\"https://github.com/superseriousbusiness/gotosocial/blob/main/CONTRIBUTING.md#testing\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/superseriousbusiness/gotosocial/blob/main/CONTRIBUTING.md#testing</a></p><p>Users on this instance:</p><ul><li><span class=\"h-card\"><a href=\"http://localhost:8080/@admin\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>admin</span></a></span> (admin!).</li><li><span class=\"h-card\"><a href=\"http://localhost:8080/@1happyturtle\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>1happyturtle</span></a></span> (posts about turtles, we don't know why).</li><li><span class=\"h-card\"><a href=\"http://localhost:8080/@the_mighty_zork\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>the_mighty_zork</span></a></span> (who knows).</li></ul><p>If you need to edit the models for the testrig, you can do so at <code>internal/testmodels.go</code>.</p>",
 | 
			
		||||
| 
						 | 
				
			
			@ -554,7 +554,7 @@ func (suite *InstancePatchTestSuite) TestInstancePatch6() {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	suite.Equal(`{
 | 
			
		||||
  "uri": "http://localhost:8080",
 | 
			
		||||
  "uri": "localhost:8080",
 | 
			
		||||
  "account_domain": "localhost:8080",
 | 
			
		||||
  "title": "GoToSocial Testrig Instance",
 | 
			
		||||
  "description": "<p>Here's a fuller description of the GoToSocial testrig instance.</p><p>This instance is for testing purposes only. It doesn't federate at all. Go check out <a href=\"https://github.com/superseriousbusiness/gotosocial/tree/main/testrig\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/superseriousbusiness/gotosocial/tree/main/testrig</a> and <a href=\"https://github.com/superseriousbusiness/gotosocial/blob/main/CONTRIBUTING.md#testing\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/superseriousbusiness/gotosocial/blob/main/CONTRIBUTING.md#testing</a></p><p>Users on this instance:</p><ul><li><span class=\"h-card\"><a href=\"http://localhost:8080/@admin\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>admin</span></a></span> (admin!).</li><li><span class=\"h-card\"><a href=\"http://localhost:8080/@1happyturtle\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>1happyturtle</span></a></span> (posts about turtles, we don't know why).</li><li><span class=\"h-card\"><a href=\"http://localhost:8080/@the_mighty_zork\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>the_mighty_zork</span></a></span> (who knows).</li></ul><p>If you need to edit the models for the testrig, you can do so at <code>internal/testmodels.go</code>.</p>",
 | 
			
		||||
| 
						 | 
				
			
			@ -717,7 +717,7 @@ func (suite *InstancePatchTestSuite) TestInstancePatch8() {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	suite.Equal(`{
 | 
			
		||||
  "uri": "http://localhost:8080",
 | 
			
		||||
  "uri": "localhost:8080",
 | 
			
		||||
  "account_domain": "localhost:8080",
 | 
			
		||||
  "title": "GoToSocial Testrig Instance",
 | 
			
		||||
  "description": "<p>Here's a fuller description of the GoToSocial testrig instance.</p><p>This instance is for testing purposes only. It doesn't federate at all. Go check out <a href=\"https://github.com/superseriousbusiness/gotosocial/tree/main/testrig\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/superseriousbusiness/gotosocial/tree/main/testrig</a> and <a href=\"https://github.com/superseriousbusiness/gotosocial/blob/main/CONTRIBUTING.md#testing\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/superseriousbusiness/gotosocial/blob/main/CONTRIBUTING.md#testing</a></p><p>Users on this instance:</p><ul><li><span class=\"h-card\"><a href=\"http://localhost:8080/@admin\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>admin</span></a></span> (admin!).</li><li><span class=\"h-card\"><a href=\"http://localhost:8080/@1happyturtle\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>1happyturtle</span></a></span> (posts about turtles, we don't know why).</li><li><span class=\"h-card\"><a href=\"http://localhost:8080/@the_mighty_zork\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>the_mighty_zork</span></a></span> (who knows).</li></ul><p>If you need to edit the models for the testrig, you can do so at <code>internal/testmodels.go</code>.</p>",
 | 
			
		||||
| 
						 | 
				
			
			@ -899,7 +899,7 @@ func (suite *InstancePatchTestSuite) TestInstancePatch9() {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	suite.Equal(`{
 | 
			
		||||
  "uri": "http://localhost:8080",
 | 
			
		||||
  "uri": "localhost:8080",
 | 
			
		||||
  "account_domain": "localhost:8080",
 | 
			
		||||
  "title": "GoToSocial Testrig Instance",
 | 
			
		||||
  "description": "<p>Here's a fuller description of the GoToSocial testrig instance.</p><p>This instance is for testing purposes only. It doesn't federate at all. Go check out <a href=\"https://github.com/superseriousbusiness/gotosocial/tree/main/testrig\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/superseriousbusiness/gotosocial/tree/main/testrig</a> and <a href=\"https://github.com/superseriousbusiness/gotosocial/blob/main/CONTRIBUTING.md#testing\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/superseriousbusiness/gotosocial/blob/main/CONTRIBUTING.md#testing</a></p><p>Users on this instance:</p><ul><li><span class=\"h-card\"><a href=\"http://localhost:8080/@admin\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>admin</span></a></span> (admin!).</li><li><span class=\"h-card\"><a href=\"http://localhost:8080/@1happyturtle\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>1happyturtle</span></a></span> (posts about turtles, we don't know why).</li><li><span class=\"h-card\"><a href=\"http://localhost:8080/@the_mighty_zork\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>the_mighty_zork</span></a></span> (who knows).</li></ul><p>If you need to edit the models for the testrig, you can do so at <code>internal/testmodels.go</code>.</p>",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1523,9 +1523,15 @@ func (c *Converter) InstanceRuleToAdminAPIRule(r *gtsmodel.Rule) *apimodel.Admin
 | 
			
		|||
 | 
			
		||||
// InstanceToAPIV1Instance converts a gts instance into its api equivalent for serving at /api/v1/instance
 | 
			
		||||
func (c *Converter) InstanceToAPIV1Instance(ctx context.Context, i *gtsmodel.Instance) (*apimodel.InstanceV1, error) {
 | 
			
		||||
	domain := i.Domain
 | 
			
		||||
	accDomain := config.GetAccountDomain()
 | 
			
		||||
	if accDomain != "" {
 | 
			
		||||
		domain = accDomain
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	instance := &apimodel.InstanceV1{
 | 
			
		||||
		URI:                  i.URI,
 | 
			
		||||
		AccountDomain:        config.GetAccountDomain(),
 | 
			
		||||
		URI:                  domain,
 | 
			
		||||
		AccountDomain:        accDomain,
 | 
			
		||||
		Title:                i.Title,
 | 
			
		||||
		Description:          i.Description,
 | 
			
		||||
		DescriptionText:      i.DescriptionText,
 | 
			
		||||
| 
						 | 
				
			
			@ -1642,9 +1648,15 @@ func (c *Converter) InstanceToAPIV1Instance(ctx context.Context, i *gtsmodel.Ins
 | 
			
		|||
 | 
			
		||||
// InstanceToAPIV2Instance converts a gts instance into its api equivalent for serving at /api/v2/instance
 | 
			
		||||
func (c *Converter) InstanceToAPIV2Instance(ctx context.Context, i *gtsmodel.Instance) (*apimodel.InstanceV2, error) {
 | 
			
		||||
	domain := i.Domain
 | 
			
		||||
	accDomain := config.GetAccountDomain()
 | 
			
		||||
	if accDomain != "" {
 | 
			
		||||
		domain = accDomain
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	instance := &apimodel.InstanceV2{
 | 
			
		||||
		Domain:          i.Domain,
 | 
			
		||||
		AccountDomain:   config.GetAccountDomain(),
 | 
			
		||||
		Domain:          domain,
 | 
			
		||||
		AccountDomain:   accDomain,
 | 
			
		||||
		Title:           i.Title,
 | 
			
		||||
		Version:         config.GetSoftwareVersion(),
 | 
			
		||||
		SourceURL:       instanceSourceURL,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1918,7 +1918,7 @@ func (suite *InternalToFrontendTestSuite) TestInstanceV1ToFrontend() {
 | 
			
		|||
 | 
			
		||||
	// FIXME: "rules" is empty from the database, because it's not fetched through db.GetInstance
 | 
			
		||||
	suite.Equal(`{
 | 
			
		||||
  "uri": "http://localhost:8080",
 | 
			
		||||
  "uri": "localhost:8080",
 | 
			
		||||
  "account_domain": "localhost:8080",
 | 
			
		||||
  "title": "GoToSocial Testrig Instance",
 | 
			
		||||
  "description": "\u003cp\u003eHere's a fuller description of the GoToSocial testrig instance.\u003c/p\u003e\u003cp\u003eThis instance is for testing purposes only. It doesn't federate at all. Go check out \u003ca href=\"https://github.com/superseriousbusiness/gotosocial/tree/main/testrig\" rel=\"nofollow noreferrer noopener\" target=\"_blank\"\u003ehttps://github.com/superseriousbusiness/gotosocial/tree/main/testrig\u003c/a\u003e and \u003ca href=\"https://github.com/superseriousbusiness/gotosocial/blob/main/CONTRIBUTING.md#testing\" rel=\"nofollow noreferrer noopener\" target=\"_blank\"\u003ehttps://github.com/superseriousbusiness/gotosocial/blob/main/CONTRIBUTING.md#testing\u003c/a\u003e\u003c/p\u003e\u003cp\u003eUsers on this instance:\u003c/p\u003e\u003cul\u003e\u003cli\u003e\u003cspan class=\"h-card\"\u003e\u003ca href=\"http://localhost:8080/@admin\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\"\u003e@\u003cspan\u003eadmin\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e (admin!).\u003c/li\u003e\u003cli\u003e\u003cspan class=\"h-card\"\u003e\u003ca href=\"http://localhost:8080/@1happyturtle\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\"\u003e@\u003cspan\u003e1happyturtle\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e (posts about turtles, we don't know why).\u003c/li\u003e\u003cli\u003e\u003cspan class=\"h-card\"\u003e\u003ca href=\"http://localhost:8080/@the_mighty_zork\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\"\u003e@\u003cspan\u003ethe_mighty_zork\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e (who knows).\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eIf you need to edit the models for the testrig, you can do so at \u003ccode\u003einternal/testmodels.go\u003c/code\u003e.\u003c/p\u003e",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue