11package com .netease .nim .im .server .sdk .v1 .account ;
22
3+ import com .alibaba .fastjson2 .JSONArray ;
34import com .alibaba .fastjson2 .JSONObject ;
45import com .netease .nim .im .server .sdk .core .exception .YunxinSdkException ;
56import com .netease .nim .im .server .sdk .core .Result ;
67import com .netease .nim .im .server .sdk .core .YunxinApiHttpClient ;
78import com .netease .nim .im .server .sdk .core .YunxinApiResponse ;
8- import com .netease .nim .im .server .sdk .v1 .account .request .CreateAccountRequestV1 ;
9- import com .netease .nim .im .server .sdk .v1 .account .response .CreateAccountResponseV1 ;
9+ import com .netease .nim .im .server .sdk .v1 .account .request .* ;
10+ import com .netease .nim .im .server .sdk .v1 .account .response .* ;
1011import com .netease .nim .im .server .sdk .v1 .annotation .YunxinParamUtils ;
1112
13+ import java .util .ArrayList ;
14+ import java .util .List ;
1215import java .util .Map ;
1316
1417/**
@@ -31,12 +34,135 @@ public Result<CreateAccountResponseV1> createAccount(CreateAccountRequestV1 requ
3134 if (code != 200 ) {
3235 return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), object .getString ("desc" ), null );
3336 }
34- CreateAccountResponseV1 response = new CreateAccountResponseV1 ();
35- JSONObject info = object .getJSONObject ("info" );
36- response .setAccid (info .getString ("accid" ));
37- response .setName (info .getString ("name" ));
38- response .setToken (info .getString ("token" ));
37+ CreateAccountResponseV1 response = object .getObject ("info" , CreateAccountResponseV1 .class );
3938 return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), null , response );
4039 }
4140
41+ @ Override
42+ public Result <UpdateTokenResponseV1 > updateToken (UpdateTokenRequestV1 request ) throws YunxinSdkException {
43+ Map <String , String > paramMap = YunxinParamUtils .convert (request );
44+ YunxinApiResponse apiResponse = httpClient .executeV1Api ("/user/update.action" , paramMap );
45+ JSONObject object = JSONObject .parseObject (apiResponse .getData ());
46+ int code = object .getIntValue ("code" );
47+ if (code != 200 ) {
48+ return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), object .getString ("desc" ), null );
49+ }
50+ return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), null , new UpdateTokenResponseV1 ());
51+ }
52+
53+ @ Override
54+ public Result <RefreshTokenResponseV1 > refreshToken (RefreshTokenRequestV1 request ) throws YunxinSdkException {
55+ Map <String , String > paramMap = YunxinParamUtils .convert (request );
56+ YunxinApiResponse apiResponse = httpClient .executeV1Api ("/user/refreshToken.action" , paramMap );
57+ JSONObject object = JSONObject .parseObject (apiResponse .getData ());
58+ int code = object .getIntValue ("code" );
59+ if (code != 200 ) {
60+ return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), object .getString ("desc" ), null );
61+ }
62+ RefreshTokenResponseV1 response = object .getObject ("info" , RefreshTokenResponseV1 .class );
63+ return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), null , response );
64+ }
65+
66+ @ Override
67+ public Result <BlockAccountResponseV1 > block (BlockAccountRequestV1 request ) throws YunxinSdkException {
68+ Map <String , String > paramMap = YunxinParamUtils .convert (request );
69+ YunxinApiResponse apiResponse = httpClient .executeV1Api ("/user/block.action" , paramMap );
70+ JSONObject object = JSONObject .parseObject (apiResponse .getData ());
71+ int code = object .getIntValue ("code" );
72+ if (code != 200 ) {
73+ return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), object .getString ("desc" ), null );
74+ }
75+ return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), null , new BlockAccountResponseV1 ());
76+ }
77+
78+ @ Override
79+ public Result <UnBlockAccountResponseV1 > unblock (UnBlockAccountRequestV1 request ) throws YunxinSdkException {
80+ Map <String , String > paramMap = YunxinParamUtils .convert (request );
81+ YunxinApiResponse apiResponse = httpClient .executeV1Api ("/user/unblock.action" , paramMap );
82+ JSONObject object = JSONObject .parseObject (apiResponse .getData ());
83+ int code = object .getIntValue ("code" );
84+ if (code != 200 ) {
85+ return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), object .getString ("desc" ), null );
86+ }
87+ return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), null , new UnBlockAccountResponseV1 ());
88+ }
89+
90+ @ Override
91+ public Result <MuteAccountResponseV1 > mute (MuteAccountRequestV1 request ) throws YunxinSdkException {
92+ Map <String , String > paramMap = YunxinParamUtils .convert (request );
93+ YunxinApiResponse apiResponse = httpClient .executeV1Api ("/user/mute.action" , paramMap );
94+ JSONObject object = JSONObject .parseObject (apiResponse .getData ());
95+ int code = object .getIntValue ("code" );
96+ if (code != 200 ) {
97+ return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), object .getString ("desc" ), null );
98+ }
99+ return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), null , new MuteAccountResponseV1 ());
100+ }
101+
102+ @ Override
103+ public Result <MuteModuleResponseV1 > muteModule (MuteModuleRequestV1 request ) throws YunxinSdkException {
104+ Map <String , String > paramMap = YunxinParamUtils .convert (request );
105+ YunxinApiResponse apiResponse = httpClient .executeV1Api ("/user/muteModule.action" , paramMap );
106+ JSONObject object = JSONObject .parseObject (apiResponse .getData ());
107+ int code = object .getIntValue ("code" );
108+ if (code != 200 ) {
109+ return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), object .getString ("desc" ), null );
110+ }
111+ MuteModuleResponseV1 response = object .getObject ("data" , MuteModuleResponseV1 .class );
112+ return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), null , response );
113+ }
114+
115+ @ Override
116+ public Result <SetDonnopResponseV1 > setDonnop (SetDonnopRequestV1 request ) throws YunxinSdkException {
117+ Map <String , String > paramMap = YunxinParamUtils .convert (request );
118+ YunxinApiResponse apiResponse = httpClient .executeV1Api ("/user/setDonnop.action" , paramMap );
119+ JSONObject object = JSONObject .parseObject (apiResponse .getData ());
120+ int code = object .getIntValue ("code" );
121+ if (code != 200 ) {
122+ return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), object .getString ("desc" ), null );
123+ }
124+ return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), null , new SetDonnopResponseV1 ());
125+ }
126+
127+ @ Override
128+ public Result <QueryAccountOnlineStatusResponseV1 > queryOnlineStatus (QueryAccountOnlineStatusRequestV1 request ) throws YunxinSdkException {
129+ Map <String , String > paramMap = YunxinParamUtils .convert (request );
130+ YunxinApiResponse apiResponse = httpClient .executeV1Api ("/user/userOnlineStatus.action" , paramMap );
131+ JSONObject object = JSONObject .parseObject (apiResponse .getData ());
132+ int code = object .getIntValue ("code" );
133+ if (code != 200 ) {
134+ return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), object .getString ("desc" ), null );
135+ }
136+ QueryAccountOnlineStatusResponseV1 response = new QueryAccountOnlineStatusResponseV1 ();
137+ JSONArray jsonArray = object .getJSONArray ("invalidAccids" );
138+ List <String > invalidAccids = new ArrayList <>();
139+ if (jsonArray != null ) {
140+ for (Object o : jsonArray ) {
141+ invalidAccids .add (String .valueOf (o ));
142+ }
143+ }
144+ response .setInvalidAccids (invalidAccids );
145+
146+ List <QueryAccountOnlineStatusResponseV1 .OnlineStatus > onlineStatusList = new ArrayList <>();
147+ JSONObject statusJson = object .getJSONObject ("status" );
148+ if (statusJson != null ) {
149+ for (Map .Entry <String , Object > entry : statusJson .entrySet ()) {
150+ QueryAccountOnlineStatusResponseV1 .OnlineStatus onlineStatus = new QueryAccountOnlineStatusResponseV1 .OnlineStatus ();
151+ onlineStatus .setAccid (entry .getKey ());
152+ List <QueryAccountOnlineStatusResponseV1 .Status > statusList = new ArrayList <>();
153+ JSONArray array = (JSONArray )entry .getValue ();
154+ for (Object o : array ) {
155+ JSONObject json = (JSONObject ) o ;
156+ QueryAccountOnlineStatusResponseV1 .Status status = new QueryAccountOnlineStatusResponseV1 .Status ();
157+ status .setClientType (json .getIntValue ("clientType" ));
158+ status .setLoginTime (json .getLongValue ("loginTime" ));
159+ statusList .add (status );
160+ }
161+ onlineStatus .setStatusList (statusList );
162+ onlineStatusList .add (onlineStatus );
163+ }
164+ }
165+ response .setOnlineStatusList (onlineStatusList );
166+ return new Result <>(apiResponse .getEndpoint (), code , apiResponse .getTraceId (), null , response );
167+ }
42168}
0 commit comments