using Microsoft.AspNetCore.Mvc; namespace zero.Backoffice.Modules; /// /// | GET /zero/api/countries/empty /// | GET /zero/api/countries/{id} /// | GET /zero/api/countries/{id}/revisions /// | GET /zero/api/countries[type,query,filter,...] /// | POST /zero/api/countries /// | PUT /zero/api/countries/{id} /// | DELETE /zero/api/countries/{id} /// public class CountriesController : ZeroBackofficeApiController { protected ICountriesStore Collection { get; set; } public CountriesController(ICountriesStore collection) { Collection = collection; } [HttpGet("empty")] public virtual async Task New() { return await Collection.Empty(); } [HttpGet("{id}")] public virtual async Task Get(string id, string changeVector = null) { return await Collection.Load(id, changeVector); } [HttpGet] public virtual async Task> Get(ListBackofficeQuery query) { return await Collection.Load(query.Page, query.PageSize, q => q.OrderByDescending(x => x.CreatedDate)); } //[HttpGet("{id}/revisions")] //public virtual async Task>> GetRevisions(string id) //{ // return await Collection.GetRevisions(id); //} [HttpPost] public virtual async Task> Create(Country country) { return await Collection.Create(country); } [HttpPut("{id}")] public virtual async Task> Update(string id, Country country) { return await Collection.Update(country); } [HttpDelete("{id}")] public virtual async Task> Delete(string id) { return await Collection.Delete(id); } }