Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Enhancement: Use beta endpoint for single drive operations

We've updated the single drive operations to use the v1 beta endpoint.
This allows us to drop custom hardcoded logic for converting drive permissions.

https://github.com/owncloud/web/pull/13412
32 changes: 5 additions & 27 deletions packages/web-client/src/graph/drives/drives.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,55 +5,33 @@ import type { GraphDrives } from './types'

const getServerUrlFromDrive = (drive: Drive) => new URL(drive.webUrl).origin

const roleIdv1Tov2Map = {
manager: '312c0871-5ef7-4b3a-85b6-0e4074c64049',
editor: '58c63c02-1d89-4572-916a-870abc5a1b7d',
viewer: 'a8d5fe5e-96e3-418d-825b-534dbdf22b99'
}

// FIXME: convert old v1 drive to v2 drive. remove with https://github.com/owncloud/ocis/issues/9884
const v1Tov2Drive = (drive: Drive) => {
drive.root?.permissions?.forEach((p) => {
p.grantedToV2 = p.grantedToV2 || p.grantedToIdentities?.[0]
delete p.grantedToIdentities
const oldRole = p.roles[0]
if (oldRole) {
p.roles[0] = roleIdv1Tov2Map[oldRole]
}
})
return drive
}

export const DrivesFactory = ({ axiosClient, config }: GraphFactoryOptions): GraphDrives => {
const drivesApiFactory = DrivesApiFactory(config, config.basePath, axiosClient)
const meDrivesApi = new MeDrivesApi(config, config.basePath, axiosClient)
const allDrivesApi = new DrivesGetDrivesApi(config, config.basePath, axiosClient)

return {
async getDrive(id, graphRoles, requestOptions) {
let { data: drive } = await drivesApiFactory.getDrive(id, requestOptions)
drive = v1Tov2Drive(drive)
const { data: drive } = await drivesApiFactory.getDriveBeta(id, requestOptions)
return buildSpace({ ...drive, serverUrl: getServerUrlFromDrive(drive) }, graphRoles)
},

async createDrive(data, graphRoles, requestOptions) {
let { data: drive } = await drivesApiFactory.createDrive(data, requestOptions)
drive = v1Tov2Drive(drive)
const { data: drive } = await drivesApiFactory.createDriveBeta(data, requestOptions)
return buildSpace({ ...drive, serverUrl: getServerUrlFromDrive(drive) }, graphRoles)
},

async updateDrive(id, data, graphRoles, requestOptions) {
let { data: drive } = await drivesApiFactory.updateDrive(id, data, requestOptions)
drive = v1Tov2Drive(drive)
const { data: drive } = await drivesApiFactory.updateDriveBeta(id, data, requestOptions)
return buildSpace({ ...drive, serverUrl: getServerUrlFromDrive(drive) }, graphRoles)
},

async disableDrive(id, ifMatch, requestOptions) {
await drivesApiFactory.deleteDrive(id, ifMatch, requestOptions)
await drivesApiFactory.deleteDriveBeta(id, ifMatch, requestOptions)
},

async deleteDrive(id, ifMatch, requestOptions) {
await drivesApiFactory.deleteDrive(id, ifMatch, {
await drivesApiFactory.deleteDriveBeta(id, ifMatch, {
headers: {
...((requestOptions?.headers && requestOptions.headers) || {}),
Purge: 'T'
Expand Down
102 changes: 102 additions & 0 deletions packages/web-client/src/graph/generated/.openapi-generator/FILES
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,107 @@ api.ts
base.ts
common.ts
configuration.ts
docs/ActivitiesApi.md
docs/Activity.md
docs/ActivityTemplate.md
docs/ActivityTimes.md
docs/AppRole.md
docs/AppRoleAssignment.md
docs/Application.md
docs/ApplicationsApi.md
docs/Audio.md
docs/ClassMemberReference.md
docs/ClassReference.md
docs/ClassTeacherReference.md
docs/CollectionOfActivities.md
docs/CollectionOfAppRoleAssignments.md
docs/CollectionOfApplications.md
docs/CollectionOfClass.md
docs/CollectionOfDriveItems.md
docs/CollectionOfDriveItems1.md
docs/CollectionOfDrives.md
docs/CollectionOfDrives1.md
docs/CollectionOfEducationClass.md
docs/CollectionOfEducationUser.md
docs/CollectionOfGroup.md
docs/CollectionOfPermissions.md
docs/CollectionOfPermissionsWithAllowedValues.md
docs/CollectionOfSchools.md
docs/CollectionOfTags.md
docs/CollectionOfUser.md
docs/CollectionOfUsers.md
docs/Deleted.md
docs/Drive.md
docs/DriveItem.md
docs/DriveItemApi.md
docs/DriveItemCreateLink.md
docs/DriveItemInvite.md
docs/DriveRecipient.md
docs/DriveUpdate.md
docs/DrivesApi.md
docs/DrivesGetDrivesApi.md
docs/DrivesPermissionsApi.md
docs/DrivesRootApi.md
docs/EducationClass.md
docs/EducationClassApi.md
docs/EducationClassTeachersApi.md
docs/EducationSchool.md
docs/EducationSchoolApi.md
docs/EducationUser.md
docs/EducationUserApi.md
docs/EducationUserReference.md
docs/ExportPersonalDataRequest.md
docs/FileSystemInfo.md
docs/Folder.md
docs/FolderView.md
docs/GeoCoordinates.md
docs/Group.md
docs/GroupApi.md
docs/GroupsApi.md
docs/Hashes.md
docs/Identity.md
docs/IdentitySet.md
docs/Image.md
docs/ItemReference.md
docs/MeChangepasswordApi.md
docs/MeDriveApi.md
docs/MeDriveRootApi.md
docs/MeDriveRootChildrenApi.md
docs/MeDrivesApi.md
docs/MeUserApi.md
docs/MemberReference.md
docs/ObjectIdentity.md
docs/OdataError.md
docs/OdataErrorDetail.md
docs/OdataErrorMain.md
docs/OpenGraphFile.md
docs/PasswordChange.md
docs/PasswordProfile.md
docs/Permission.md
docs/Photo.md
docs/Quota.md
docs/RemoteItem.md
docs/RoleManagementApi.md
docs/SharePointIdentitySet.md
docs/SharingInvitation.md
docs/SharingLink.md
docs/SharingLinkPassword.md
docs/SharingLinkType.md
docs/SignInActivity.md
docs/SpecialFolder.md
docs/TagAssignment.md
docs/TagUnassignment.md
docs/TagsApi.md
docs/Thumbnail.md
docs/ThumbnailSet.md
docs/Trash.md
docs/UnifiedRoleDefinition.md
docs/UnifiedRolePermission.md
docs/User.md
docs/UserApi.md
docs/UserAppRoleAssignmentApi.md
docs/UserUpdate.md
docs/UsersApi.md
docs/Video.md
git_push.sh
index.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
7.8.0-SNAPSHOT
7.19.0-SNAPSHOT
Loading