using Microsoft.AspNetCore.Mvc; using System.Threading.Tasks; using zero.Core.Api; using zero.Core.Entities; using zero.Core.Identity; using zero.Web.Models; namespace zero.Web.Controllers { [ZeroAuthorize(Permissions.Settings.Translations, PermissionsValue.Read)] public class TranslationsController : BackofficeController where T : ITranslation, new() { ITranslationsApi Api; public TranslationsController(ITranslationsApi api) { Api = api; } /// /// Get translation by id /// public IActionResult GetEmpty() => JsonEdit(new T()); /// /// Get translation by id /// public async Task GetById([FromQuery] string id) => JsonEdit(await Api.GetById(id)); /// /// Get all translations /// public async Task GetAll([FromQuery] ListQuery query) => Json(await Api.GetByQuery(query)); /// /// Save translation /// [ZeroAuthorize(Permissions.Settings.Translations, PermissionsValue.Write)] public async Task Save([FromBody] T model) => Json(await Api.Save(model)); /// /// Deletes a translation /// [ZeroAuthorize(Permissions.Settings.Translations, PermissionsValue.Write)] public async Task Delete([FromQuery] string id) => Json(await Api.Delete(id)); } }