mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-02 16:52:25 -06:00 
			
		
		
		
	
		
			
	
	
		
			35 lines
		
	
	
	
		
			991 B
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
	
		
			991 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								package federation
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import (
							 | 
						||
| 
								 | 
							
									"context"
							 | 
						||
| 
								 | 
							
									"fmt"
							 | 
						||
| 
								 | 
							
									"net/url"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
							 | 
						||
| 
								 | 
							
									"github.com/superseriousbusiness/gotosocial/internal/id"
							 | 
						||
| 
								 | 
							
									"github.com/superseriousbusiness/gotosocial/internal/log"
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// CheckGone checks if a tombstone exists in the database for AP Actor or Object with the given uri.
							 | 
						||
| 
								 | 
							
								func (f *federator) CheckGone(ctx context.Context, uri *url.URL) (bool, error) {
							 | 
						||
| 
								 | 
							
									return f.db.TombstoneExistsWithURI(ctx, uri.String())
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// HandleGone puts a tombstone in the database, which marks an AP Actor or Object with the given uri as gone.
							 | 
						||
| 
								 | 
							
								func (f *federator) HandleGone(ctx context.Context, uri *url.URL) error {
							 | 
						||
| 
								 | 
							
									tombstoneID, err := id.NewULID()
							 | 
						||
| 
								 | 
							
									if err != nil {
							 | 
						||
| 
								 | 
							
										err = fmt.Errorf("HandleGone: error generating id for new tombstone %s: %s", uri, err)
							 | 
						||
| 
								 | 
							
										log.Error(err)
							 | 
						||
| 
								 | 
							
										return err
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									tombstone := >smodel.Tombstone{
							 | 
						||
| 
								 | 
							
										ID:     tombstoneID,
							 | 
						||
| 
								 | 
							
										Domain: uri.Host,
							 | 
						||
| 
								 | 
							
										URI:    uri.String(),
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return f.db.PutTombstone(ctx, tombstone)
							 | 
						||
| 
								 | 
							
								}
							 |