Merge pull request #1219 from nextcloud/feature/apiv4/add-apiv4-for-easy-conversation-api-calls

[apiv4] Add apiv4 for easy conversation api calls
This commit is contained in:
Joas Schilling 2021-05-07 22:18:49 +02:00 committed by GitHub
commit 4bf570ac35
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 27 additions and 22 deletions

View File

@ -229,7 +229,7 @@ class MainActivity : BaseActivity(), ActionBarProvider {
val roomType = "1"
val currentUser = userUtils.currentUser ?: return
val apiVersion = ApiUtils.getConversationApiVersion(currentUser, intArrayOf(1))
val apiVersion = ApiUtils.getConversationApiVersion(currentUser, intArrayOf(ApiUtils.APIv4, 1))
val credentials = ApiUtils.getCredentials(currentUser.username, currentUser.token)
val retrofitBucket = ApiUtils.getRetrofitBucketForCreateRoom(
apiVersion, currentUser.baseUrl, roomType,
@ -250,6 +250,7 @@ class MainActivity : BaseActivity(), ActionBarProvider {
bundle.putString(KEY_ROOM_TOKEN, roomOverall.ocs.data.token)
bundle.putString(KEY_ROOM_ID, roomOverall.ocs.data.roomId)
if (currentUser.hasSpreedFeatureCapability("chat-v2")) {
// FIXME once APIv2 or later is used only, the createRoom already returns all the data
ncApi.getRoom(
credentials,
ApiUtils.getUrlForRoom(

View File

@ -437,7 +437,7 @@ public class CallController extends BaseController {
}
private void handleFromNotification() {
int apiVersion = ApiUtils.getConversationApiVersion(conversationUser, new int[] {1});
int apiVersion = ApiUtils.getConversationApiVersion(conversationUser, new int[] {ApiUtils.APIv4, 1});
ncApi.getRooms(credentials, ApiUtils.getUrlForRooms(apiVersion, baseUrl))
.retry(3)
@ -1217,7 +1217,7 @@ public class CallController extends BaseController {
private void joinRoomAndCall() {
callSession = ApplicationWideCurrentRoomHolder.getInstance().getSession();
int apiVersion = ApiUtils.getConversationApiVersion(conversationUser, new int[] {1});
int apiVersion = ApiUtils.getConversationApiVersion(conversationUser, new int[] {ApiUtils.APIv4, 1});
if (TextUtils.isEmpty(callSession)) {
ncApi.joinRoom(credentials, ApiUtils.getUrlForParticipantsActive(apiVersion, baseUrl, roomToken),
@ -1591,7 +1591,7 @@ public class CallController extends BaseController {
}
private void leaveRoom(boolean shutDownView) {
int apiVersion = ApiUtils.getConversationApiVersion(conversationUser, new int[] {1});
int apiVersion = ApiUtils.getConversationApiVersion(conversationUser, new int[] {ApiUtils.APIv4, 1});
ncApi.leaveRoom(credentials, ApiUtils.getUrlForParticipantsActive(apiVersion, baseUrl, roomToken))
.subscribeOn(Schedulers.io())

View File

@ -260,7 +260,8 @@ public class CallNotificationController extends BaseController {
}
private void handleFromNotification() {
int apiVersion = ApiUtils.getConversationApiVersion(userBeingCalled, new int[] {4, 3, 1});
int apiVersion = ApiUtils.getConversationApiVersion(userBeingCalled, new int[] {ApiUtils.APIv4,
ApiUtils.APIv3, 1});
ncApi.getRoom(credentials, ApiUtils.getUrlForRoom(apiVersion, userBeingCalled.getBaseUrl(), roomId))
.subscribeOn(Schedulers.io())

View File

@ -292,7 +292,7 @@ class ChatController(args: Bundle) :
}
if (conversationUser != null) {
val apiVersion = ApiUtils.getConversationApiVersion(conversationUser, intArrayOf(1))
val apiVersion = ApiUtils.getConversationApiVersion(conversationUser, intArrayOf(ApiUtils.APIv4, 1))
ncApi?.getRoom(credentials, ApiUtils.getUrlForRoom(apiVersion, conversationUser.baseUrl, roomToken))
?.subscribeOn(Schedulers.io())
@ -336,7 +336,7 @@ class ChatController(args: Bundle) :
var apiVersion = 1
// FIXME Can this be called for guests?
if (conversationUser != null) {
apiVersion = ApiUtils.getConversationApiVersion(conversationUser, intArrayOf(1))
apiVersion = ApiUtils.getConversationApiVersion(conversationUser, intArrayOf(ApiUtils.APIv4, 1))
}
ncApi?.getRooms(credentials, ApiUtils.getUrlForRooms(apiVersion, conversationUser?.baseUrl))
@ -933,7 +933,7 @@ class ChatController(args: Bundle) :
var apiVersion = 1
// FIXME Fix API checking with guests?
if (conversationUser != null) {
apiVersion = ApiUtils.getConversationApiVersion(conversationUser, intArrayOf(1))
apiVersion = ApiUtils.getConversationApiVersion(conversationUser, intArrayOf(ApiUtils.APIv4, 1))
}
ncApi?.joinRoom(
@ -1004,7 +1004,7 @@ class ChatController(args: Bundle) :
var apiVersion = 1
// FIXME Fix API checking with guests?
if (conversationUser != null) {
apiVersion = ApiUtils.getConversationApiVersion(conversationUser, intArrayOf(1))
apiVersion = ApiUtils.getConversationApiVersion(conversationUser, intArrayOf(ApiUtils.APIv4, 1))
}
ncApi?.leaveRoom(
@ -1627,7 +1627,7 @@ class ChatController(args: Bundle) :
var apiVersion = 1
// FIXME Fix API checking with guests?
if (conversationUser != null) {
apiVersion = ApiUtils.getConversationApiVersion(conversationUser, intArrayOf(1))
apiVersion = ApiUtils.getChatApiVersion(conversationUser, intArrayOf(1))
}
ncApi?.deleteChatMessage(
@ -1750,7 +1750,7 @@ class ChatController(args: Bundle) :
var apiVersion = 1
// FIXME Fix API checking with guests?
if (conversationUser != null) {
apiVersion = ApiUtils.getConversationApiVersion(conversationUser, intArrayOf(1))
apiVersion = ApiUtils.getConversationApiVersion(conversationUser, intArrayOf(ApiUtils.APIv4, 1))
}
val retrofitBucket = ApiUtils.getRetrofitBucketForCreateRoom(

View File

@ -289,7 +289,7 @@ public class ContactsController extends BaseController implements SearchView.OnQ
userId = selectedUserIds.iterator().next();
}
int apiVersion = ApiUtils.getConversationApiVersion(currentUser, new int[] {1});
int apiVersion = ApiUtils.getConversationApiVersion(currentUser, new int[] {ApiUtils.APIv4, 1});
RetrofitBucket retrofitBucket = ApiUtils.getRetrofitBucketForCreateRoom(apiVersion,
currentUser.getBaseUrl(),
roomType,
@ -314,6 +314,7 @@ public class ContactsController extends BaseController implements SearchView.OnQ
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_ID(), roomOverall.getOcs().getData().getRoomId());
if (currentUser.hasSpreedFeatureCapability("chat-v2")) {
// FIXME once APIv2 or later is used only, the createRoom already returns all the data
ncApi.getRoom(credentials,
ApiUtils.getUrlForRoom(apiVersion, currentUser.getBaseUrl(),
roomOverall.getOcs().getData().getToken()))
@ -853,7 +854,7 @@ public class ContactsController extends BaseController implements SearchView.OnQ
roomType = "2";
}
int apiVersion = ApiUtils.getConversationApiVersion(currentUser, new int[] {1});
int apiVersion = ApiUtils.getConversationApiVersion(currentUser, new int[] {ApiUtils.APIv4, 1});
RetrofitBucket retrofitBucket = ApiUtils.getRetrofitBucketForCreateRoom(apiVersion,
currentUser.getBaseUrl(),

View File

@ -307,7 +307,7 @@ class ConversationInfoController(args: Bundle) : BaseController(args), FlexibleA
).isChecked
) 1 else 0
val apiVersion = ApiUtils.getConversationApiVersion(conversationUser, intArrayOf(1))
val apiVersion = ApiUtils.getConversationApiVersion(conversationUser, intArrayOf(ApiUtils.APIv4, 1))
ncApi.setLobbyForConversation(
ApiUtils.getCredentials(conversationUser!!.username, conversationUser.token),
@ -539,7 +539,7 @@ class ConversationInfoController(args: Bundle) : BaseController(args), FlexibleA
var apiVersion = 1
// FIXME Fix API checking with guests?
if (conversationUser != null) {
apiVersion = ApiUtils.getConversationApiVersion(conversationUser, intArrayOf(1))
apiVersion = ApiUtils.getConversationApiVersion(conversationUser, intArrayOf(ApiUtils.APIv4, 1))
}
ncApi.getRoom(credentials, ApiUtils.getUrlForRoom(apiVersion, conversationUser!!.baseUrl, conversationToken))

View File

@ -415,7 +415,7 @@ public class ConversationsListController extends BaseController implements Searc
callItems = new ArrayList<>();
int apiVersion = ApiUtils.getConversationApiVersion(currentUser, new int[] {4, 1});
int apiVersion = ApiUtils.getConversationApiVersion(currentUser, new int[] {ApiUtils.APIv4, ApiUtils.APIv3, 1});
roomsQueryDisposable = ncApi.getRooms(credentials, ApiUtils.getUrlForRooms(apiVersion,
currentUser.getBaseUrl()))

View File

@ -191,7 +191,7 @@ public class OperationsMenuController extends BaseController {
// FIXME joining a public link we need to check other capabilities
apiVersion = 1;
} else {
apiVersion = ApiUtils.getConversationApiVersion(currentUser, new int[] {1});
apiVersion = ApiUtils.getConversationApiVersion(currentUser, new int[] {ApiUtils.APIv4, 1});
}
@ -394,7 +394,7 @@ public class OperationsMenuController extends BaseController {
}
private void performGroupCallWorkaround(String credentials) {
int apiVersion = ApiUtils.getConversationApiVersion(currentUser, new int[] {1});
int apiVersion = ApiUtils.getConversationApiVersion(currentUser, new int[] {ApiUtils.APIv4, 1});
ncApi.makeRoomPrivate(credentials, ApiUtils.getUrlForRoomPublic(apiVersion, currentUser.getBaseUrl(),
conversation.getToken()))

View File

@ -75,7 +75,7 @@ public class DeleteConversationWorker extends Worker {
UserEntity operationUser = userUtils.getUserWithId(operationUserId);
if (operationUser != null) {
int apiVersion = ApiUtils.getConversationApiVersion(operationUser, new int[] {1});
int apiVersion = ApiUtils.getConversationApiVersion(operationUser, new int[] {ApiUtils.APIv4, 1});
String credentials = ApiUtils.getCredentials(operationUser.getUsername(), operationUser.getToken());
ncApi = retrofit.newBuilder().client(okHttpClient.newBuilder().cookieJar(new

View File

@ -83,7 +83,7 @@ public class LeaveConversationWorker extends Worker {
EventStatus eventStatus = new EventStatus(operationUser.getId(),
EventStatus.EventType.CONVERSATION_UPDATE, true);
int apiVersion = ApiUtils.getConversationApiVersion(operationUser, new int[] {1});
int apiVersion = ApiUtils.getConversationApiVersion(operationUser, new int[] {ApiUtils.APIv4, 1});
ncApi.removeSelfFromRoom(credentials, ApiUtils.getUrlForParticipantsSelf(apiVersion,
operationUser.getBaseUrl(),

View File

@ -152,7 +152,7 @@ public class NotificationWorker extends Worker {
importantConversation = Boolean.parseBoolean(arbitraryStorageEntity.getValue());
}
int apiVersion = ApiUtils.getConversationApiVersion(userEntity, new int[] {1});
int apiVersion = ApiUtils.getConversationApiVersion(userEntity, new int[] {ApiUtils.APIv4, 1});
ncApi.getRoom(credentials, ApiUtils.getUrlForRoom(apiVersion, userEntity.getBaseUrl(),
intent.getExtras().getString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN())))

View File

@ -37,6 +37,8 @@ import androidx.annotation.Nullable;
import okhttp3.Credentials;
public class ApiUtils {
public static final int APIv3 = 3;
public static final int APIv4 = 4;
private static final String TAG = "ApiUtils";
private static final String ocsApiVersion = "/ocs/v2.php";
private static final String spreedApiVersion = "/apps/spreed/api/v1";

View File

@ -93,7 +93,7 @@ public class DatabaseStorageModule implements StorageModule {
intValue = 0;
}
int apiVersion = ApiUtils.getConversationApiVersion(conversationUser, new int[] {4, 1});
int apiVersion = ApiUtils.getConversationApiVersion(conversationUser, new int[] {ApiUtils.APIv4, 1});
ncApi.setNotificationLevel(ApiUtils.getCredentials(conversationUser.getUsername(), conversationUser.getToken()),
ApiUtils.getUrlForRoomNotificationLevel(apiVersion, conversationUser.getBaseUrl(),