require "json" module Guff module API module PostAPI private def do_post_get_posts( context : HTTP::Server::Context, args : Hash(String, String) ) @models.post.get_posts( site_id: get_site(context), q: args["q"]? || "", tags: get_posts_tags(args["tags"]), page: args.has_key?("page") ? args["page"].to_i : 1, ) end private def do_post_add_post( context : HTTP::Server::Context, args : Hash(String, String) ) post_id = @models.post.add_post( site_id: get_site(context), slug: args["slug"], name: args["name"], body: args["body"], tags: get_tags(args["tags"]?), ) # return json { post_id: post_id } end private def do_post_update_post( context : HTTP::Server::Context, args : Hash(String, String) ) post_id = @models.post.update_post( site_id: get_site(context), post_id: args["post_id"].to_i, slug: args["slug"]?, name: args["name"], body: args["body"], tags: args.has_key?("tags") ? get_tags(args["tags"]?) : nil, posted: args.has_key?("posted") ? (args["posted"] == "t") : nil, ) # return json { ok: true } end private def do_post_remove_posts( context : HTTP::Server::Context, args : Hash(String, String) ) @models.post.remove_posts( site_id: get_site(context), post_ids: args["post_ids"].split(',').map { |post_id| post_id.to_s.to_i }, ) { ok: true } end private def do_post_set_tags( context : HTTP::Server::Context, args : Hash(String, String) ) @models.post.set_tags( site_id: get_site(context), post_id: (args["post_id"] as String).to_i, tags: get_tags(args["tags"]?), ) { ok: true} end end end end