starting work on adding s3 media support
This commit is contained in:
@@ -9,6 +9,7 @@ defmodule Mixer.Posts do
|
|||||||
|
|
||||||
resources do
|
resources do
|
||||||
resource Mixer.Posts.Tweet
|
resource Mixer.Posts.Tweet
|
||||||
|
resource Mixer.Posts.Media
|
||||||
end
|
end
|
||||||
|
|
||||||
typescript_rpc do
|
typescript_rpc do
|
||||||
|
|||||||
40
lib/mixer/posts/media.ex
Normal file
40
lib/mixer/posts/media.ex
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
defmodule Mixer.Posts.Media do
|
||||||
|
use Ash.Resource,
|
||||||
|
otp_app: :mixer,
|
||||||
|
domain: Mixer.Posts,
|
||||||
|
data_layer: AshPostgres.DataLayer,
|
||||||
|
authorizers: [Ash.Policy.Authorizer],
|
||||||
|
extensions: [
|
||||||
|
#AshStateMachine,
|
||||||
|
AshTypescript.Resource
|
||||||
|
]
|
||||||
|
|
||||||
|
postgres do
|
||||||
|
table "media"
|
||||||
|
repo Mixer.Repo
|
||||||
|
end
|
||||||
|
|
||||||
|
typescript do
|
||||||
|
type_name "media"
|
||||||
|
end
|
||||||
|
|
||||||
|
actions do
|
||||||
|
defaults [:read, :destroy, create: :*, update: :*]
|
||||||
|
end
|
||||||
|
|
||||||
|
attributes do
|
||||||
|
uuid_primary_key :id
|
||||||
|
|
||||||
|
attribute :s3_key, :string do
|
||||||
|
allow_nil? false
|
||||||
|
public? true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
relationships do
|
||||||
|
belongs_to :tweet, Mixer.Posts.Tweet do
|
||||||
|
allow_nil? false
|
||||||
|
public? true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -43,6 +43,12 @@ defmodule Mixer.Posts.Tweet do
|
|||||||
public? true
|
public? true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
attribute :likes, :integer do
|
||||||
|
allow_nil? false
|
||||||
|
default 0
|
||||||
|
public? true
|
||||||
|
end
|
||||||
|
|
||||||
attribute :user_id, :uuid do
|
attribute :user_id, :uuid do
|
||||||
allow_nil? false
|
allow_nil? false
|
||||||
public? true
|
public? true
|
||||||
@@ -56,6 +62,10 @@ defmodule Mixer.Posts.Tweet do
|
|||||||
allow_nil? false
|
allow_nil? false
|
||||||
public? true
|
public? true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
has_many :s3_key, Mixer.Posts.Media do
|
||||||
|
public? true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
policies do
|
policies do
|
||||||
|
|||||||
Reference in New Issue
Block a user