char_images.rb 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. class CharImage < ActiveRecord::Base
  2. validates :char_id, presence: true
  3. validates :url, presence: true
  4. def self.from_form(app)
  5. key_mapping = {
  6. "Keyword" => "keyword",
  7. "Category" => "category",
  8. }
  9. hash = {}
  10. app.fields.each do |field|
  11. next if field.nil?
  12. db_column = key_mapping[field.name]
  13. hash[db_column] =
  14. db_column == 'category' ? field.value.upcase : field.value
  15. end
  16. hash["char_id"] = app.footer.text
  17. hash["url"] = app.image.url
  18. hash = hash.reject { |k,v| k == nil }
  19. hash
  20. end
  21. def self.to_form(char:, keyword:, category:, url:, user_id:)
  22. Embed.new(
  23. title: "#{char.name} | #{char.species}",
  24. description: "<@#{user_id}>",
  25. author: {
  26. name: "Image Application",
  27. icon_url: "https://i.imgur.com/fiLLQED.jpg"
  28. },
  29. image: {
  30. url: url
  31. },
  32. footer: {
  33. text: char.id
  34. },
  35. fields: [
  36. { name: 'Keyword', value: keyword, inline: true },
  37. { name: 'Category', value: category, inline: true }
  38. ]
  39. )
  40. end
  41. end