From 3f6ec50eb6ba35f4b1bef03b3ac091999bac29da Mon Sep 17 00:00:00 2001 From: collinbarrett Date: Wed, 26 Sep 2018 09:36:36 -0500 Subject: [PATCH] fill out some API endpoints, add Postman collection ref #505 --- FilterLists.postman_collection.json | 539 ++++++++++++++++++ .../V1/Controllers/SoftwareController.cs | 3 +- .../V1/Controllers/TagsController.cs | 3 +- .../Language/LanguageService.cs | 5 +- .../Software/SoftwareService.cs | 5 + src/FilterLists.Services/Tag/TagService.cs | 5 + 6 files changed, 553 insertions(+), 7 deletions(-) create mode 100644 FilterLists.postman_collection.json diff --git a/FilterLists.postman_collection.json b/FilterLists.postman_collection.json new file mode 100644 index 000000000..f28d0f1c6 --- /dev/null +++ b/FilterLists.postman_collection.json @@ -0,0 +1,539 @@ +{ + "info": { + "_postman_id": "918a11ab-a25e-3c3c-dfb2-295e487ee4d6", + "name": "FilterLists", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "dependents", + "item": [ + { + "name": "dependents/seed", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/dependents/seed", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "dependents", + "seed" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "forks", + "item": [ + { + "name": "forks/seed", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/forks/seed", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "forks", + "seed" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "languages", + "item": [ + { + "name": "languages", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/languages", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "languages" + ] + } + }, + "response": [] + }, + { + "name": "languages/{id}", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/languages/122", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "languages", + "122" + ] + } + }, + "response": [] + }, + { + "name": "languages/seed", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/languages/seed", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "languages", + "seed" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "licenses", + "item": [ + { + "name": "licenses/seed", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/licenses/seed", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "licenses", + "seed" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "lists", + "item": [ + { + "name": "lists", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/lists", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "lists" + ] + } + }, + "response": [] + }, + { + "name": "lists/{id}", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/lists/1", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "lists", + "1" + ] + } + }, + "response": [] + }, + { + "name": "lists/seed", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/lists/seed", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "lists", + "seed" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "listslanguages", + "item": [ + { + "name": "listslanguages/seed", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/listslanguages/seed", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "listslanguages", + "seed" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "listsmaintainers", + "item": [ + { + "name": "listsmaintainers/seed", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/listsmaintainers/seed", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "listsmaintainers", + "seed" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "liststags", + "item": [ + { + "name": "liststags/seed", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/liststags/seed", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "liststags", + "seed" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "maintainers", + "item": [ + { + "name": "maintainers/seed", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/maintainers/seed", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "maintainers", + "seed" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "merges", + "item": [ + { + "name": "merges/seed", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/merges/seed", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "merges", + "seed" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "rules", + "item": [ + { + "name": "rules", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/rules", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "rules" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "software", + "item": [ + { + "name": "software", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/software", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "software" + ] + } + }, + "response": [] + }, + { + "name": "software/{id}", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/software/1", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "software", + "1" + ] + } + }, + "response": [] + }, + { + "name": "software/seed", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/software/seed", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "software", + "seed" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "softwaresyntaxes", + "item": [ + { + "name": "softwaresyntaxes/seed", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/softwaresyntaxes/seed", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "softwaresyntaxes", + "seed" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "syntaxes", + "item": [ + { + "name": "syntaxes/seed", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/syntaxes/seed", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "syntaxes", + "seed" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "tags", + "item": [ + { + "name": "tags", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/tags", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "tags" + ] + } + }, + "response": [] + }, + { + "name": "tags/{id}", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/tags/1", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "tags", + "1" + ] + } + }, + "response": [] + }, + { + "name": "tags/seed", + "request": { + "method": "GET", + "header": [], + "body": {}, + "url": { + "raw": "{{baseUrl}}/{{version}}/tags/seed", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "{{version}}", + "tags", + "seed" + ] + } + }, + "response": [] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/FilterLists.Api/V1/Controllers/SoftwareController.cs b/src/FilterLists.Api/V1/Controllers/SoftwareController.cs index af6744c09..c58553f4f 100644 --- a/src/FilterLists.Api/V1/Controllers/SoftwareController.cs +++ b/src/FilterLists.Api/V1/Controllers/SoftwareController.cs @@ -20,11 +20,10 @@ public SoftwareController(IMemoryCache memoryCache, SeedService seedService, Sof public async Task GetAll() => await Get(() => softwareService.GetAll()); - // TODO [HttpGet] [Route("{id}")] public async Task GetById(int id) => - await Task.FromResult((IActionResult)BadRequest()); + await Get(() => softwareService.GetById(id), id); [HttpGet("seed")] public async Task Seed() => diff --git a/src/FilterLists.Api/V1/Controllers/TagsController.cs b/src/FilterLists.Api/V1/Controllers/TagsController.cs index 45e3f63dd..1cbdfe545 100644 --- a/src/FilterLists.Api/V1/Controllers/TagsController.cs +++ b/src/FilterLists.Api/V1/Controllers/TagsController.cs @@ -20,11 +20,10 @@ public TagsController(IMemoryCache memoryCache, SeedService seedService, TagServ public async Task GetAll() => await Get(() => tagService.GetAll()); - // TODO [HttpGet] [Route("{id}")] public async Task GetById(int id) => - await Task.FromResult((IActionResult)BadRequest()); + await Get(() => tagService.GetById(id), id); [HttpGet("seed")] public async Task Seed() => diff --git a/src/FilterLists.Services/Language/LanguageService.cs b/src/FilterLists.Services/Language/LanguageService.cs index 48e07b54a..e7ac04e68 100644 --- a/src/FilterLists.Services/Language/LanguageService.cs +++ b/src/FilterLists.Services/Language/LanguageService.cs @@ -27,8 +27,7 @@ await TargetedLanguages.OrderBy(s => s.Name) .ToListAsync(); public async Task GetTargetedByIdAsync(int id) => - await TargetedLanguages.Where(l => l.Id == (uint)id) - .ProjectTo(MapConfig) - .FirstOrDefaultAsync(); + await TargetedLanguages.ProjectTo(MapConfig) + .FirstOrDefaultAsync(l => l.Id == id); } } \ No newline at end of file diff --git a/src/FilterLists.Services/Software/SoftwareService.cs b/src/FilterLists.Services/Software/SoftwareService.cs index 96847d39f..8dfad1c58 100644 --- a/src/FilterLists.Services/Software/SoftwareService.cs +++ b/src/FilterLists.Services/Software/SoftwareService.cs @@ -23,5 +23,10 @@ await DbContext.Software .OrderBy(s => s.Name) .ProjectTo(MapConfig) .ToListAsync(); + + public async Task GetById(int id) => + await DbContext.Software + .ProjectTo(MapConfig) + .FirstOrDefaultAsync(s => s.Id == id); } } \ No newline at end of file diff --git a/src/FilterLists.Services/Tag/TagService.cs b/src/FilterLists.Services/Tag/TagService.cs index 92e127c24..b11d636bb 100644 --- a/src/FilterLists.Services/Tag/TagService.cs +++ b/src/FilterLists.Services/Tag/TagService.cs @@ -23,5 +23,10 @@ await DbContext.Tags .OrderBy(s => s.Name) .ProjectTo(MapConfig) .ToListAsync(); + + public async Task GetById(int id) => + await DbContext.Tags + .ProjectTo(MapConfig) + .FirstOrDefaultAsync(t => t.Id == id); } } \ No newline at end of file