feat: static documentation pages
This commit is contained in:
		
							parent
							
								
									fe1cf7ce8a
								
							
						
					
					
						commit
						7468aa20ab
					
				
					 6 changed files with 58 additions and 7 deletions
				
			
		|  | @ -12,6 +12,7 @@ | |||
| // | ||||
| // You should have received a copy of the GNU Affero General Public License | ||||
| // along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
| using System.Text.RegularExpressions; | ||||
| using Foxnouns.Backend.Dto; | ||||
| using Foxnouns.Backend.Utils; | ||||
| using Microsoft.AspNetCore.Mvc; | ||||
|  | @ -19,7 +20,7 @@ using Microsoft.AspNetCore.Mvc; | |||
| namespace Foxnouns.Backend.Controllers; | ||||
| 
 | ||||
| [Route("/api/v2/meta")] | ||||
| public class MetaController : ApiControllerBase | ||||
| public partial class MetaController : ApiControllerBase | ||||
| { | ||||
|     private const string Repository = "https://codeberg.org/pronounscc/pronouns.cc"; | ||||
| 
 | ||||
|  | @ -48,7 +49,23 @@ public class MetaController : ApiControllerBase | |||
|             ) | ||||
|         ); | ||||
| 
 | ||||
|     [HttpGet("page/{page}")] | ||||
|     public async Task<IActionResult> GetStaticPageAsync(string page, CancellationToken ct = default) | ||||
|     { | ||||
|         if (!PageRegex().IsMatch(page)) | ||||
|         { | ||||
|             throw new ApiError.BadRequest("Invalid page name"); | ||||
|         } | ||||
| 
 | ||||
|         string path = Path.Join(Directory.GetCurrentDirectory(), "static-pages", $"{page}.md"); | ||||
|         string text = await System.IO.File.ReadAllTextAsync(path, ct); | ||||
|         return Ok(text); | ||||
|     } | ||||
| 
 | ||||
|     [HttpGet("/api/v2/coffee")] | ||||
|     public IActionResult BrewCoffee() => | ||||
|         Problem("Sorry, I'm a teapot!", statusCode: StatusCodes.Status418ImATeapot); | ||||
| 
 | ||||
|     [GeneratedRegex(@"^[a-z\-_]+$")]
 | ||||
|     private static partial Regex PageRegex(); | ||||
| } | ||||
|  |  | |||
							
								
								
									
										1
									
								
								Foxnouns.Backend/static-pages/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Foxnouns.Backend/static-pages/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| * | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue