Packages
shopifex
0.1.1
2.4.0
2.3.0
2.2.2
2.2.1
2.2.0
2.1.20
2.1.19
2.1.18
2.1.17
2.1.16
2.1.15
2.1.14
2.1.13
2.1.12
2.1.11
2.1.10
2.1.9
2.1.8
2.1.7
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.1
2.0.0
1.1.1
1.1.0
1.0.1
1.0.0
0.6.2
0.6.1
0.6.0
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Phoenix boilerplate for Shopify Embedded App SDK
Current section
Files
Jump to
Current section
Files
lib/shopifex_web/controllers/webhook_controller.ex
defmodule ShopifexWeb.WebhookController do
@moduledoc """
You can use this module inside of another one of your application controllers.
The conn, shop and topic will be called by handle_topic/3 which you can define in your parent controller.
Example:
```elixir
use ShopifexWeb.WebhookController
def handle_topic(conn, shop, "app/uninstalled") do
Shopifex.Shops.delete_shop(shop)
conn
|> send_resp(200, "success")
end
```
"""
defmacro __using__(_opts) do
quote do
def action(conn, _) do
[topic] = Plug.Conn.get_req_header(conn, "x-shopify-topic")
[shop_url] = Plug.Conn.get_req_header(conn, "x-shopify-shop-domain")
case Shopifex.Shops.get_shop_by_url(shop_url) do
nil ->
conn
|> send_resp(200, "success")
shop ->
handle_topic(conn, shop, topic)
end
end
end
end
end