using Microsoft.AspNetCore.Mvc; namespace zero.Api.Endpoints.Countries; public class CountriesController : ZeroApiEntityStoreController { public CountriesController(ICountryStore store) : base(store) { } [HttpGet("empty")] [ZeroAuthorize(CountryPermissions.Create)] public virtual Task> Empty(string flavor = null) => EmptyModel(flavor); [HttpGet("{id}")] [ZeroAuthorize(CountryPermissions.Read)] public virtual Task> Get(string id, string changeVector = null) => GetModel(id, changeVector); [HttpGet("")] [ZeroAuthorize(CountryPermissions.Read)] public virtual Task> Get([FromQuery] ListQuery query) { query.OrderQuery = q => q.OrderByDescending(x => x.IsPreferred).ThenBy(x => x.Name); return GetModels(query); } [HttpPost("")] [ZeroAuthorize(CountryPermissions.Create)] public virtual Task> Create(CountrySave saveModel) => CreateModel(saveModel); [HttpPut("{id}")] [ZeroAuthorize(CountryPermissions.Update)] public virtual Task> Update(string id, CountrySave updateModel, [FromQuery] string changeToken = null) => UpdateModel(id, updateModel, changeToken); [HttpDelete("{id}")] [ZeroAuthorize(CountryPermissions.Delete)] public virtual Task> Delete(string id) => DeleteModel(id); }