# Teach Service

## 描述

```
讲师单点登录设置token接口
接口地址（仅做说明使用）：https://api.polyv.net/hi-class-api/open/teach/v1/set-token
```

## 调用约束

1、接口调用有频率限制，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vclass/java/limit.md)，调用常见异常，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vclass/java/exceptionDoc/README.md)

## 单元测试

```java
	@Test
	public void testTokenLogin() throws IOException, NoSuchAlgorithmException {
        VClassTokenLoginRequest vClassTokenLoginRequest = new VClassTokenLoginRequest();
        Boolean vClassTokenLoginResponse;
        try {
            vClassTokenLoginRequest.setTeacherId("gmbi29drer");
            vClassTokenLoginRequest.setToken(getRandomString(20, "test"));
            vClassTokenLoginResponse = new VClassTeachServiceImpl().tokenLogin(vClassTokenLoginRequest);
            Assert.assertNotNull(vClassTokenLoginResponse);
            if (vClassTokenLoginResponse != null) {
                //to do something ......
                log.debug("测试讲师单点登录成功 {}", JSON.toJSONString(vClassTokenLoginResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误，错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑，记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }
```

## 单元测试说明

1、请求正确，返回Boolean对象，B端依据此对象处理业务逻辑；

2、请求参数校验不合格，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 输入参数 \[xxx.chat.LivexxxRequest]对象校验失败，失败字段 \[pic不能为空 / msg不能为空] ]

3、服务器处理异常，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 保利威请求返回数据错误，请求流水号：66e7ad29fd04425a84c2b2b562d2025b，错误原因： invalid signature. ]

## 请求入参描述

| 参数名       | 必选   | 类型     | 说明                       |
| --------- | ---- | ------ | ------------------------ |
| teacherId | true | String | 讲师Id（teacherId）          |
| token     | true | String | 单点登录token，一次性有效，过期时间一个小时 |

## 返回对象描述

true为登录成功，false为登录失败\
