Parameter binding for API requests

(cherry picked from commit 074b293d62b56bf02d82ac12ad726777b5d1e478)
This commit is contained in:
Bogdan 2025-10-02 23:34:03 +03:00 committed by bakerboy448
parent 1a4c1b6db5
commit 826b8b5933
21 changed files with 34 additions and 34 deletions

View file

@ -142,7 +142,7 @@ public List<AlbumResource> GetAlbums([FromQuery]int? artistId,
} }
[RestPostById] [RestPostById]
public ActionResult<AlbumResource> AddAlbum(AlbumResource albumResource) public ActionResult<AlbumResource> AddAlbum([FromBody] AlbumResource albumResource)
{ {
var album = _addAlbumService.AddAlbum(albumResource.ToModel()); var album = _addAlbumService.AddAlbum(albumResource.ToModel());
@ -150,7 +150,7 @@ public ActionResult<AlbumResource> AddAlbum(AlbumResource albumResource)
} }
[RestPutById] [RestPutById]
public ActionResult<AlbumResource> UpdateAlbum(AlbumResource albumResource) public ActionResult<AlbumResource> UpdateAlbum([FromBody] AlbumResource albumResource)
{ {
var album = _albumService.GetAlbum(albumResource.Id); var album = _albumService.GetAlbum(albumResource.Id);

View file

@ -157,7 +157,7 @@ public List<ArtistResource> AllArtists(Guid? mbId)
[RestPostById] [RestPostById]
[Consumes("application/json")] [Consumes("application/json")]
[Produces("application/json")] [Produces("application/json")]
public ActionResult<ArtistResource> AddArtist(ArtistResource artistResource) public ActionResult<ArtistResource> AddArtist([FromBody] ArtistResource artistResource)
{ {
var artist = _addArtistService.AddArtist(artistResource.ToModel()); var artist = _addArtistService.AddArtist(artistResource.ToModel());
@ -167,7 +167,7 @@ public ActionResult<ArtistResource> AddArtist(ArtistResource artistResource)
[RestPutById] [RestPutById]
[Consumes("application/json")] [Consumes("application/json")]
[Produces("application/json")] [Produces("application/json")]
public ActionResult<ArtistResource> UpdateArtist(ArtistResource artistResource, bool moveFiles = false) public ActionResult<ArtistResource> UpdateArtist([FromBody] ArtistResource artistResource, bool moveFiles = false)
{ {
var artist = _artistService.GetArtist(artistResource.Id); var artist = _artistService.GetArtist(artistResource.Id);

View file

@ -51,7 +51,7 @@ public override AutoTaggingResource GetResourceById(int id)
[RestPostById] [RestPostById]
[Consumes("application/json")] [Consumes("application/json")]
public ActionResult<AutoTaggingResource> Create(AutoTaggingResource autoTagResource) public ActionResult<AutoTaggingResource> Create([FromBody] AutoTaggingResource autoTagResource)
{ {
var model = autoTagResource.ToModel(_specifications); var model = autoTagResource.ToModel(_specifications);
@ -62,7 +62,7 @@ public ActionResult<AutoTaggingResource> Create(AutoTaggingResource autoTagResou
[RestPutById] [RestPutById]
[Consumes("application/json")] [Consumes("application/json")]
public ActionResult<AutoTaggingResource> Update(AutoTaggingResource resource) public ActionResult<AutoTaggingResource> Update([FromBody] AutoTaggingResource resource)
{ {
var model = resource.ToModel(_specifications); var model = resource.ToModel(_specifications);

View file

@ -51,7 +51,7 @@ public override CommandResource GetResourceById(int id)
[RestPostById] [RestPostById]
[Consumes("application/json")] [Consumes("application/json")]
[Produces("application/json")] [Produces("application/json")]
public ActionResult<CommandResource> StartCommand(CommandResource commandResource) public ActionResult<CommandResource> StartCommand([FromBody] CommandResource commandResource)
{ {
var commandType = var commandType =
_knownTypes.GetImplementations(typeof(Command)) _knownTypes.GetImplementations(typeof(Command))

View file

@ -34,7 +34,7 @@ public TResource GetConfig()
[RestPutById] [RestPutById]
[Consumes("application/json")] [Consumes("application/json")]
public virtual ActionResult<TResource> SaveConfig(TResource resource) public virtual ActionResult<TResource> SaveConfig([FromBody] TResource resource)
{ {
var dictionary = resource.GetType() var dictionary = resource.GetType()
.GetProperties(BindingFlags.Instance | BindingFlags.Public) .GetProperties(BindingFlags.Instance | BindingFlags.Public)

View file

@ -107,7 +107,7 @@ public HostConfigResource GetHostConfig()
} }
[RestPutById] [RestPutById]
public ActionResult<HostConfigResource> SaveHostConfig(HostConfigResource resource) public ActionResult<HostConfigResource> SaveHostConfig([FromBody] HostConfigResource resource)
{ {
var dictionary = resource.GetType() var dictionary = resource.GetType()
.GetProperties(BindingFlags.Instance | BindingFlags.Public) .GetProperties(BindingFlags.Instance | BindingFlags.Public)

View file

@ -61,7 +61,7 @@ public NamingConfigResource GetNamingConfig()
} }
[RestPutById] [RestPutById]
public ActionResult<NamingConfigResource> UpdateNamingConfig(NamingConfigResource resource) public ActionResult<NamingConfigResource> UpdateNamingConfig([FromBody] NamingConfigResource resource)
{ {
var nameSpec = resource.ToModel(); var nameSpec = resource.ToModel();
ValidateFormatResult(nameSpec); ValidateFormatResult(nameSpec);

View file

@ -32,7 +32,7 @@ public UiConfigController(IConfigFileProvider configFileProvider, IConfigService
} }
[RestPutById] [RestPutById]
public override ActionResult<UiConfigResource> SaveConfig(UiConfigResource resource) public override ActionResult<UiConfigResource> SaveConfig([FromBody] UiConfigResource resource)
{ {
var dictionary = resource.GetType() var dictionary = resource.GetType()
.GetProperties(BindingFlags.Instance | BindingFlags.Public) .GetProperties(BindingFlags.Instance | BindingFlags.Public)

View file

@ -31,7 +31,7 @@ public List<CustomFilterResource> GetCustomFilters()
[RestPostById] [RestPostById]
[Consumes("application/json")] [Consumes("application/json")]
public ActionResult<CustomFilterResource> AddCustomFilter(CustomFilterResource resource) public ActionResult<CustomFilterResource> AddCustomFilter([FromBody] CustomFilterResource resource)
{ {
var customFilter = _customFilterService.Add(resource.ToModel()); var customFilter = _customFilterService.Add(resource.ToModel());
@ -40,7 +40,7 @@ public ActionResult<CustomFilterResource> AddCustomFilter(CustomFilterResource r
[RestPutById] [RestPutById]
[Consumes("application/json")] [Consumes("application/json")]
public ActionResult<CustomFilterResource> UpdateCustomFilter(CustomFilterResource resource) public ActionResult<CustomFilterResource> UpdateCustomFilter([FromBody] CustomFilterResource resource)
{ {
_customFilterService.Update(resource.ToModel()); _customFilterService.Update(resource.ToModel());
return Accepted(resource.Id); return Accepted(resource.Id);

View file

@ -56,7 +56,7 @@ public List<CustomFormatResource> GetAll()
[RestPostById] [RestPostById]
[Consumes("application/json")] [Consumes("application/json")]
public ActionResult<CustomFormatResource> Create(CustomFormatResource customFormatResource) public ActionResult<CustomFormatResource> Create([FromBody] CustomFormatResource customFormatResource)
{ {
var model = customFormatResource.ToModel(_specifications); var model = customFormatResource.ToModel(_specifications);
@ -67,7 +67,7 @@ public ActionResult<CustomFormatResource> Create(CustomFormatResource customForm
[RestPutById] [RestPutById]
[Consumes("application/json")] [Consumes("application/json")]
public ActionResult<CustomFormatResource> Update(CustomFormatResource resource) public ActionResult<CustomFormatResource> Update([FromBody] CustomFormatResource resource)
{ {
var model = resource.ToModel(_specifications); var model = resource.ToModel(_specifications);

View file

@ -40,7 +40,7 @@ public List<ImportListExclusionResource> GetImportListExclusions()
} }
[RestPostById] [RestPostById]
public ActionResult<ImportListExclusionResource> AddImportListExclusion(ImportListExclusionResource resource) public ActionResult<ImportListExclusionResource> AddImportListExclusion([FromBody] ImportListExclusionResource resource)
{ {
var customFilter = _importListExclusionService.Add(resource.ToModel()); var customFilter = _importListExclusionService.Add(resource.ToModel());
@ -48,7 +48,7 @@ public ActionResult<ImportListExclusionResource> AddImportListExclusion(ImportLi
} }
[RestPutById] [RestPutById]
public ActionResult<ImportListExclusionResource> UpdateImportListExclusion(ImportListExclusionResource resource) public ActionResult<ImportListExclusionResource> UpdateImportListExclusion([FromBody] ImportListExclusionResource resource)
{ {
_importListExclusionService.Update(resource.ToModel()); _importListExclusionService.Update(resource.ToModel());
return Accepted(resource.Id); return Accepted(resource.Id);

View file

@ -66,7 +66,7 @@ public ReleaseController(IAlbumService albumService,
} }
[HttpPost] [HttpPost]
public async Task<ActionResult<ReleaseResource>> DownloadRelease(ReleaseResource release) public async Task<ActionResult<ReleaseResource>> DownloadRelease([FromBody] ReleaseResource release)
{ {
ValidateResource(release); ValidateResource(release);

View file

@ -49,7 +49,7 @@ public ReleasePushController(IMakeDownloadDecision downloadDecisionMaker,
[HttpPost] [HttpPost]
[Consumes("application/json")] [Consumes("application/json")]
public ActionResult<ReleaseResource> Create(ReleaseResource release) public ActionResult<ReleaseResource> Create([FromBody] ReleaseResource release)
{ {
_logger.Info("Release pushed: {0} - {1}", release.Title, release.DownloadUrl ?? release.MagnetUrl); _logger.Info("Release pushed: {0} - {1}", release.Title, release.DownloadUrl ?? release.MagnetUrl);

View file

@ -33,7 +33,7 @@ public ManualImportController(IManualImportService manualImportService,
} }
[HttpPost] [HttpPost]
public IActionResult UpdateItems(List<ManualImportUpdateResource> resource) public IActionResult UpdateItems([FromBody] List<ManualImportUpdateResource> resource)
{ {
return Accepted(UpdateImportItems(resource)); return Accepted(UpdateImportItems(resource));
} }

View file

@ -34,7 +34,7 @@ public DelayProfileController(IDelayProfileService delayProfileService, DelayPro
} }
[RestPostById] [RestPostById]
public ActionResult<DelayProfileResource> Create(DelayProfileResource resource) public ActionResult<DelayProfileResource> Create([FromBody] DelayProfileResource resource)
{ {
var model = resource.ToModel(); var model = resource.ToModel();
model = _delayProfileService.Add(model); model = _delayProfileService.Add(model);
@ -54,7 +54,7 @@ public void DeleteProfile(int id)
} }
[RestPutById] [RestPutById]
public ActionResult<DelayProfileResource> Update(DelayProfileResource resource) public ActionResult<DelayProfileResource> Update([FromBody] DelayProfileResource resource)
{ {
var model = resource.ToModel(); var model = resource.ToModel();
_delayProfileService.Update(model); _delayProfileService.Update(model);

View file

@ -24,7 +24,7 @@ public MetadataProfileController(IMetadataProfileService profileService)
} }
[RestPostById] [RestPostById]
public ActionResult<MetadataProfileResource> Create(MetadataProfileResource resource) public ActionResult<MetadataProfileResource> Create([FromBody] MetadataProfileResource resource)
{ {
var model = resource.ToModel(); var model = resource.ToModel();
model = _profileService.Add(model); model = _profileService.Add(model);
@ -38,7 +38,7 @@ public void DeleteProfile(int id)
} }
[RestPutById] [RestPutById]
public ActionResult<MetadataProfileResource> Update(MetadataProfileResource resource) public ActionResult<MetadataProfileResource> Update([FromBody] MetadataProfileResource resource)
{ {
var model = resource.ToModel(); var model = resource.ToModel();

View file

@ -44,7 +44,7 @@ public QualityProfileController(IQualityProfileService qualityProfileService, IC
} }
[RestPostById] [RestPostById]
public ActionResult<QualityProfileResource> Create(QualityProfileResource resource) public ActionResult<QualityProfileResource> Create([FromBody] QualityProfileResource resource)
{ {
var model = resource.ToModel(); var model = resource.ToModel();
model = _qualityProfileService.Add(model); model = _qualityProfileService.Add(model);
@ -58,7 +58,7 @@ public void DeleteProfile(int id)
} }
[RestPutById] [RestPutById]
public ActionResult<QualityProfileResource> Update(QualityProfileResource resource) public ActionResult<QualityProfileResource> Update([FromBody] QualityProfileResource resource)
{ {
var model = resource.ToModel(); var model = resource.ToModel();

View file

@ -47,13 +47,13 @@ public List<ReleaseProfileResource> GetAll()
} }
[RestPostById] [RestPostById]
public ActionResult<ReleaseProfileResource> Create(ReleaseProfileResource resource) public ActionResult<ReleaseProfileResource> Create([FromBody] ReleaseProfileResource resource)
{ {
return Created(_releaseProfileService.Add(resource.ToModel()).Id); return Created(_releaseProfileService.Add(resource.ToModel()).Id);
} }
[RestPutById] [RestPutById]
public ActionResult<ReleaseProfileResource> Update(ReleaseProfileResource resource) public ActionResult<ReleaseProfileResource> Update([FromBody] ReleaseProfileResource resource)
{ {
_releaseProfileService.Update(resource.ToModel()); _releaseProfileService.Update(resource.ToModel());
return Accepted(resource.Id); return Accepted(resource.Id);

View file

@ -23,7 +23,7 @@ public QualityDefinitionController(IQualityDefinitionService qualityDefinitionSe
} }
[RestPutById] [RestPutById]
public ActionResult<QualityDefinitionResource> Update(QualityDefinitionResource resource) public ActionResult<QualityDefinitionResource> Update([FromBody] QualityDefinitionResource resource)
{ {
var model = resource.ToModel(); var model = resource.ToModel();
_qualityDefinitionService.Update(model); _qualityDefinitionService.Update(model);

View file

@ -66,7 +66,7 @@ public override RootFolderResource GetResourceById(int id)
[RestPostById] [RestPostById]
[Consumes("application/json")] [Consumes("application/json")]
public ActionResult<RootFolderResource> CreateRootFolder(RootFolderResource rootFolderResource) public ActionResult<RootFolderResource> CreateRootFolder([FromBody] RootFolderResource rootFolderResource)
{ {
var model = rootFolderResource.ToModel(); var model = rootFolderResource.ToModel();
@ -74,7 +74,7 @@ public ActionResult<RootFolderResource> CreateRootFolder(RootFolderResource root
} }
[RestPutById] [RestPutById]
public ActionResult<RootFolderResource> UpdateRootFolder(RootFolderResource rootFolderResource) public ActionResult<RootFolderResource> UpdateRootFolder([FromBody] RootFolderResource rootFolderResource)
{ {
var model = rootFolderResource.ToModel(); var model = rootFolderResource.ToModel();

View file

@ -42,14 +42,14 @@ public List<TagResource> GetAll()
[RestPostById] [RestPostById]
[Consumes("application/json")] [Consumes("application/json")]
public ActionResult<TagResource> Create(TagResource resource) public ActionResult<TagResource> Create([FromBody] TagResource resource)
{ {
return Created(_tagService.Add(resource.ToModel()).Id); return Created(_tagService.Add(resource.ToModel()).Id);
} }
[RestPutById] [RestPutById]
[Consumes("application/json")] [Consumes("application/json")]
public ActionResult<TagResource> Update(TagResource resource) public ActionResult<TagResource> Update([FromBody] TagResource resource)
{ {
_tagService.Update(resource.ToModel()); _tagService.Update(resource.ToModel());
return Accepted(resource.Id); return Accepted(resource.Id);