Hi! I might be asking a silly one, sorry for that and thanks for your time!
my aim is to implement quite simple logic:
the get_or_create_movie could be called with first param with “type” = “movie”, in that case I do not care about any other params and the code stays the same
if the first param contains “type” => “tv-series”, then the logic start to differ according to values. I feel that the straightforward approach I took looks not really pretty ![]()
def get_or_create_movie(%{ "type" => "movie" } = movie) do
# same movie code
end
def get_or_create_movie(%{ "type" => "movie" } = movie, _like_time) do
# same movie code
end
def get_or_create_movie(%{ "type" => "movie" } = movie, _like_time, _review_text) do
# same movie code
end
def get_or_create_movie(%{ "type" => "tv-series" } = series) do
# only series code
end
def get_or_create_movie(%{ "type" => "tv-series" } = series, like_time) do
# like_time only series code
end
def get_or_create_movie(%{ "type" => "tv-series" } = series, like_time, review_text) do
# like_time and review text only series code
end
the dyalizer complains (warning) that the clauses /2 and /3 was previously defined.
the function could be called with “type” = “movie” in the first param and with second and/or third params present






















