socialforge/app/api/mobile/entities/course.rb

64 lines
1.9 KiB
Ruby
Raw Normal View History

2014-12-09 16:36:43 +08:00
module Mobile
module Entities
class Course < Grape::Entity
2015-02-10 10:29:47 +08:00
include Redmine::I18n
2014-12-09 16:36:43 +08:00
def self.course_expose(field)
expose field do |f,opt|
c = nil
2014-12-23 09:44:31 +08:00
if f.is_a? ::Course
c = f
2014-12-23 09:44:31 +08:00
else
c = f[:course]
end
if f.is_a?(Hash) && f.key?(field)
f[field] if f.is_a?(Hash) && f.key?(field)
#f.img_url if f.respond_to?(:img_url)
2015-02-10 10:29:47 +08:00
elsif field == :created_at || field == :updated_at
(format_time(c[field]) if (c.is_a?(Hash) && c.key?(field))) || (format_time(c.send(field)) if c.respond_to?(field))
else
(c[field] if (c.is_a?(Hash) && c.key?(field))) || (c.send(field) if c.respond_to?(field))
2014-12-23 09:44:31 +08:00
end
2014-12-09 16:36:43 +08:00
end
end
2014-12-23 09:44:31 +08:00
course_expose :img_url
2014-12-09 16:36:43 +08:00
course_expose :attachmenttype
course_expose :class_period
course_expose :code
course_expose :created_at
course_expose :description
course_expose :endup_time
course_expose :extra
course_expose :id
course_expose :inherit_members
course_expose :is_public
course_expose :lft
course_expose :location
course_expose :name
course_expose :open_student
# course_expose :password
course_expose :rgt
course_expose :school_id
course_expose :setup_time
course_expose :state
course_expose :status
course_expose :string
course_expose :tea_id
course_expose :term
course_expose :time
course_expose :updated_at
expose :teacher, using: Mobile::Entities::User do |c, opt|
if c.is_a? ::Course
c.teacher
else
c[:course].teacher
end
end
expose :my_homework,using: Mobile::Entities::Homework do |f, opt|
2015-01-21 11:28:09 +08:00
f[:my_homework] if f.is_a?(Hash) && f.key?(:my_homework)
end
course_expose :current_user_is_member
course_expose :current_user_is_teacher
2014-12-09 16:36:43 +08:00
end
end
end