Start working on Ticket object endpoint implementation
This commit is contained in:
		
							parent
							
								
									0b97c6aa69
								
							
						
					
					
						commit
						d945e6ac72
					
				
					 3 changed files with 91 additions and 0 deletions
				
			
		
							
								
								
									
										50
									
								
								routers/api/v1/activitypub/ticket.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								routers/api/v1/activitypub/ticket.go
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,50 @@ | |||
| // Copyright 2022 The Gitea Authors. All rights reserved. | ||||
| // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | ||||
| 
 | ||||
| package activitypub | ||||
| 
 | ||||
| import ( | ||||
| 	"code.gitea.io/gitea/modules/context" | ||||
| 	"code.gitea.io/gitea/modules/forgefed" | ||||
| 	"code.gitea.io/gitea/modules/setting" | ||||
| 
 | ||||
| 	ap "github.com/go-ap/activitypub" | ||||
| ) | ||||
| 
 | ||||
| // Ticket function returns the Ticket object for an issue or PR | ||||
| func Ticket(ctx *context.APIContext) { | ||||
| 	// swagger:operation GET /activitypub/ticket/{username}/{reponame}/{id} activitypub forgefedTicket | ||||
| 	// --- | ||||
| 	// summary: Returns the Ticket object for an issue or PR | ||||
| 	// produces: | ||||
| 	// - application/activity+json | ||||
| 	// parameters: | ||||
| 	// - name: username | ||||
| 	//   in: path | ||||
| 	//   description: username of the user | ||||
| 	//   type: string | ||||
| 	//   required: true | ||||
| 	// - name: reponame | ||||
| 	//   in: path | ||||
| 	//   description: name of the repo | ||||
| 	//   type: string | ||||
| 	//   required: true | ||||
| 	// - name: id | ||||
| 	//   in: path | ||||
| 	//   description: ID number of the issue or PR | ||||
| 	//   type: string | ||||
| 	//   required: true | ||||
| 	// responses: | ||||
| 	//   "200": | ||||
| 	//     "$ref": "#/responses/ActivityPub" | ||||
| 
 | ||||
| 	link := setting.AppURL + "api/v1/activitypub/ticket/" + ctx.ContextUser.Name + "/" + ctx.Repo.Repository.Name + "/" + ctx.Params("id") | ||||
| 
 | ||||
| 	ticket := forgefed.TicketNew() | ||||
| 	ticket.ID = ap.IRI(link) | ||||
| 
 | ||||
| 	// TODO: Add other ticket fields according to https://forgefed.org/modeling.html#ticket | ||||
| 
 | ||||
| 	response(ctx, ticket) | ||||
| } | ||||
|  | @ -659,6 +659,7 @@ func Routes() *web.Route { | |||
| 					m.Get("/outbox", activitypub.RepoOutbox) | ||||
| 					m.Get("/followers", activitypub.RepoFollowers) | ||||
| 				}, repoAssignment()) | ||||
| 				m.Get("/ticket/{username}/{reponame}/{id}", repoAssignment(), activitypub.Ticket) | ||||
| 			}) | ||||
| 		} | ||||
| 		m.Get("/signing-key.gpg", misc.SigningKey) | ||||
|  |  | |||
|  | @ -155,6 +155,46 @@ | |||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "/activitypub/ticket/{username}/{reponame}/{id}": { | ||||
|       "get": { | ||||
|         "produces": [ | ||||
|           "application/activity+json" | ||||
|         ], | ||||
|         "tags": [ | ||||
|           "activitypub" | ||||
|         ], | ||||
|         "summary": "Returns the Ticket object for an issue or PR", | ||||
|         "operationId": "forgefedTicket", | ||||
|         "parameters": [ | ||||
|           { | ||||
|             "type": "string", | ||||
|             "description": "username of the user", | ||||
|             "name": "username", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "type": "string", | ||||
|             "description": "name of the repo", | ||||
|             "name": "reponame", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           }, | ||||
|           { | ||||
|             "type": "string", | ||||
|             "description": "ID number of the issue or PR", | ||||
|             "name": "id", | ||||
|             "in": "path", | ||||
|             "required": true | ||||
|           } | ||||
|         ], | ||||
|         "responses": { | ||||
|           "200": { | ||||
|             "$ref": "#/responses/ActivityPub" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "/activitypub/user/{username}": { | ||||
|       "get": { | ||||
|         "produces": [ | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Anthony Wang
						Anthony Wang