Sha256: 58433d868a7f06db1e1f6e0e94ccdb8b8ebeb55fb3cb19103cb61b3d6db4e116
Contents?: true
Size: 1.43 KB
Versions: 2
Compression:
Stored size: 1.43 KB
Contents
# frozen_string_literal: true module Mihari module Web module Endpoints # # Tag API endpoint # class Tags < Grape::API class TagDestroyer < Service # # @param [Integer] id # def call(id) Mihari::Models::Tag.find(id).destroy end end namespace :tags do desc "Get tags", { is_array: true, success: Entities::Tags, summary: "Get tags" } get "/" do tags = Mihari::Models::Tag.distinct.pluck(:name) present({ tags: tags }, with: Entities::Tags) end desc "Delete a tag", { success: Entities::Message, failure: [{ code: 404, message: "Not found", model: Entities::Message }], summary: "Delete a tag" } params do requires :id, type: Integer end delete "/:id" do id = params[:id].to_i result = TagDestroyer.result(id) if result.success? status 204 return present({ message: "" }, with: Entities::Message) end failure = result.failure case failure when ActiveRecord::RecordNotFound error!({ message: "ID:#{id} is not found" }, 404) end raise failure end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mihari-5.7.2 | lib/mihari/web/endpoints/tags.rb |
mihari-5.7.1 | lib/mihari/web/endpoints/tags.rb |