|
- #coding=utf-8
-
- module Mobile
- require_relative 'middleware/error_handler'
- require_relative 'apis/auth'
- require_relative 'apis/users'
- require_relative 'apis/courses'
- require_relative 'apis/watches'
- require_relative 'apis/upgrade'
- require_relative 'apis/homeworks'
- require_relative 'apis/comments'
- require_relative 'apis/issues'
- require_relative 'apis/activities'
- require_relative 'apis/whomeworks'
- require_relative 'apis/newss'
- require_relative 'apis/journal_for_messages'
- require_relative 'apis/messages'
- require_relative 'apis/blog_comments'
- require_relative 'apis/new_comment'
- require_relative 'apis/praise'
- require_relative 'apis/resources'
- require_relative 'apis/syllabuses'
- require_relative 'apis/projects'
-
- class API < Grape::API
- version 'v1', using: :path
- format :json
- content_type :json, "application/json;charset=UTF-8"
- use ActionDispatch::Session::CookieStore
- use Middleware::ErrorHandler
-
- helpers do
- def logger
- API.logger
- end
-
- def authenticate!
- raise('Unauthorized. 用户认证失败.') unless current_user
- end
-
- def session
- env['rack.session']
- end
-
- def current_user
- openid = session[:wechat_openid]
- if openid
- uw = UserWechat.find_by_openid(openid)
- return uw.user if uw
- end
-
- token = ApiKey.where(access_token: params[:token]).first
- if token && !token.expired?
- return User.find(token.user_id)
- end
-
- nil
- end
- end
-
- mount Apis::Auth
- mount Apis::Users
- mount Apis::Courses
- mount Apis::Watches
- mount Apis::Upgrade
- mount Apis::Homeworks
- mount Apis::Comments
- mount Apis::Issues
- mount Apis::Activities
- mount Apis::Whomeworks
- mount Apis::Newss
- mount Apis::JournalForMessages
- mount Apis::Messages
- mount Apis::BlogComments
- mount Apis::NewComment
- mount Apis::Praise
- mount Apis::Resources
- mount Apis::Syllabuses
- mount Apis::Projects
-
- add_swagger_documentation ({api_version: 'v1', base_path: '/api'}) if Rails.env.development?
-
- end
- end
-
-
|