EduSoho 如何與第三方平臺(tái)實(shí)現(xiàn)同步注冊(cè)和開通課程

EduSoho 如何與第三方平臺(tái)實(shí)現(xiàn)同步注冊(cè)和開通課程

1、注冊(cè)

使用方法

HTTP-POST > /api/users

對(duì)應(yīng)文件與代碼

api/src/Topxia/Api/Resource/Users.php

    public function post(Application $app, Request $request)
    {
        $fields = $request->request->all();

        if (!ArrayToolkit::requireds($fields, array('email', 'nickname', 'password'))) {
            return array('message' => '缺少必填字段');
        }

        if (empty($fields['registeredWay']) || !in_array(strtolower($fields['registeredWay']), array('ios', 'android'))) {
            $fields['registeredWay'] = $this->guessDeviceFromUserAgent($request->headers->get("user-agent"));
        }

        $ip = $request->getClientIp();
        $fields['createdIp'] = $ip;

        $authSettings = ServiceKernel::instance()->createService('System:SettingService')->get('auth', array());

        if (isset($authSettings['register_protective'])) {
            $type = $authSettings['register_protective'];

            switch ($type) {
                case 'middle':
                    $condition = array(
                        'startTime' => time() - 24 * 3600,
                        'createdIp' => $ip);
                    $registerCount = $this->getUserService()->countUsers($condition);

                    if ($registerCount > 30) {
                        goto failure;
                    }

                    goto register;
                    break;
                case 'high':
                    $condition = array(
                        'startTime' => time() - 24 * 3600,
                        'createdIp' => $ip);
                    $registerCount = $this->getUserService()->countUsers($condition);

                    if ($registerCount > 10) {
                        goto failure;
                    }

                    $registerCount = $this->getUserService()->countUsers(array(
                        'startTime' => time() - 3600,
                        'createdIp' => $ip));

                    if ($registerCount >= 1) {
                        goto failure;
                    }

                    goto register;
                    break;
                default:
                    goto register;
                    break;
            }
        }

        register:
        $user = $this->getUserService()->register($fields, array('mobile'));
        $user['profile'] = $this->getUserService()->getUserProfile($user['id']);
        return $this->callFilter('User', $user);

        failure:
        return array('message' => '已經(jīng)超出用戶注冊(cè)次數(shù)限制,用戶注冊(cè)失敗');
    }

2、加入課程

使用方法

HTTP-POST /courses/{id}/members

官方文檔

認(rèn)證與授權(quán) · EduSoho開發(fā)指南

http://developer.edusoho.com/api/auth.html

課程 · EduSoho開發(fā)指南

http://developer.edusoho.com/api/course.html#教學(xué)計(jì)劃成員

對(duì)應(yīng)文件與代碼

src/ApiBundle/Api/Resource/Course/CourseMember.php


    public function add(ApiRequest $request, $courseId)
    {
        $course = $this->getCourseService()->getCourse($courseId);

        if (!$course) {
            throw CourseException::NOTFOUND_COURSE();
        }

        $member = $this->getMemberService()->getCourseMember($courseId, $this->getCurrentUser()->getId());

        if (!$member) {
            $member = $this->tryJoin($course);
        }

        if ($member) {
            $this->getOCUtil()->single($member, array('userId'));

            return $member;
        }

        return null;
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容