将entities重构

api
guange 11 years ago
parent 41d9af1ab9
commit 4a6c26d499

@ -1,4 +1,12 @@
module Mobile module Mobile
module Entities
class Auth < Grape::Entity
expose :token
expose :user, using: User
end
end
module Apis module Apis
class Auth < Grape::API class Auth < Grape::API
resource :auth do resource :auth do
@ -12,8 +20,9 @@ module Mobile
if user if user
::ApiKey.delete_all(user_id: user.id) ::ApiKey.delete_all(user_id: user.id)
key = ::ApiKey.create!(user_id: user.id) key = ::ApiKey.create!(user_id: user.id)
data = {token: key.access_token}.merge(user.as_json).merge(user.extensions.as_json) api_user = UserService.new.show_user(user.id)
{status: 0, data: data} present :data, {token: key, user: api_user}, using: Mobile:Entities::Auth
present :status, 0
else else
{status: 1, message: 'Unauthorized.'} {status: 1, message: 'Unauthorized.'}
end end

@ -1,74 +1,33 @@
module Mobile module Mobile
module Apis module Apis
class Courses < Grape::API
module Entities resource :courses do
desc "get all courses"
class Course < Grape::Entity params do
def self.course_expose(field) optional :school_id, type: Integer, desc: 'school number'
expose field do |f,opt| requires :per_page_count, type: Integer
f[:course][field] || f[:course].__send__(field) requires :page, type: Integer, desc: 'current page no'
end end
end
expose :img_url
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
course_expose :teacher
end
end
class Courses < Grape::API
resource :courses do
desc "get all courses"
params do
optional :school_id, type: Integer, desc: 'school number'
requires :per_page_count, type: Integer
requires :page, type: Integer, desc: 'current page no'
end
get do
cs = CoursesService.new
courses = cs.course_list(params)
present :data, courses, with: Entities::Course
present :status, 0
end
desc "Return a course"
params do
requires :id, type: Integer
end
route_param :id do
get do get do
course = Course.find(params[:id]) cs = CoursesService.new
{status: 0, data: course} courses = cs.course_list(params)
present :data, courses, with: Mobile::Entities::Course
present :status, 0
end end
end
desc "Return a course"
params do
requires :id, type: Integer
end
route_param :id do
get do
course = Course.find(params[:id])
{status: 0, data: course}
end
end
end
end end
end end
end
end end

@ -1,38 +1,34 @@
module Mobile module Mobile
module Apis module Apis
class Users < Grape::API class Users < Grape::API
resource :users do resource :users do
desc "get all users" desc "get all users"
get do get do
['hello'] ['hello']
end end
desc "add a user" desc "add a user"
params do params do
requires :login, type: String, desc: 'username' requires :login, type: String, desc: 'username'
requires :mail, type: String, desc: 'mail' requires :mail, type: String, desc: 'mail'
requires :password, type: String, desc: 'password' requires :password, type: String, desc: 'password'
end end
post do post do
us = UsersService.new us = UsersService.new
begin begin
user = us.register params.merge(:password_confirmation => params[:password], user = us.register params.merge(:password_confirmation => params[:password],
:should_confirmation_password => true) :should_confirmation_password => true)
raise "register failed #{user.errors.full_messages}" if user.new_record? raise "register failed #{user.errors.full_messages}" if user.new_record?
{status: 0, data: user} present :data, user, with: Mobile::Entities::User
rescue => e present :status, 0
{status: 1, message: e.message} rescue => e
{status: 1, message: e.message}
end
end end
end
desc "test upload"
post "upload" do
puts "haha11"
end end
end end
end end
end
end end

@ -0,0 +1,38 @@
module Mobile
module Entities
class Course < Grape::Entity
def self.course_expose(field)
expose field do |f,opt|
f[:course][field] || f[:course].__send__(field)
end
end
expose :img_url
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
course_expose :teacher
end
end
end

@ -0,0 +1,20 @@
module Mobile
module Entities
class User < Grape::Entity
#头像
#昵称
expose :login
#性别
expose :gender do |user, opt|
user.user_extentions.gender
end
#我的二维码
#工作单位
#邮箱地址
expose :mail
#地区
#签名
end
end
end
Loading…
Cancel
Save