Last active
January 19, 2019 18:14
-
-
Save kgleong/c75de3c4e34167d03f97b309647e843e to your computer and use it in GitHub Desktop.
Google Drive - Get folder ID
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| func getFolderID( | |
| name: String, | |
| service: GTLRDriveService, | |
| user: GIDGoogleUser, | |
| completion: @escaping (String?) -> Void) { | |
| let query = GTLRDriveQuery_FilesList.query() | |
| // Comma-separated list of areas the search applies to. E.g., appDataFolder, photos, drive. | |
| query.spaces = "drive" | |
| // Comma-separated list of access levels to search in. Some possible values are "user,allTeamDrives" or "user" | |
| query.corpora = "user" | |
| let withName = "name = '\(name)'" // Case insensitive! | |
| let foldersOnly = "mimeType = 'application/vnd.google-apps.folder'" | |
| let ownedByUser = "'\(user.profile!.email!)' in owners" | |
| query.q = "\(withName) and \(foldersOnly) and \(ownedByUser)" | |
| service.executeQuery(query) { (_, result, error) in | |
| guard error == nil else { | |
| fatalError(error!.localizedDescription) | |
| } | |
| let folderList = result as! GTLRDrive_FileList | |
| // For brevity, assumes only one folder is returned. | |
| completion(folderList.files?.first?.identifier) | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment