1.0.2 • Published 3 years ago

expo-google-drive-api-wrapper v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

Fork of the react-native-google-drive-api-wrapper project, removed react-native-fs and added the expo-file-system

This wrapper facilitates the use of the google drive api.

It doesn't provide any authorization mechanism, so another package has to be used. I use react-native-google-signin (thanks for the great work guys!).

  1. Installation
  2. Usage
  3. Version history

Installation

npm i --save expo-google-drive-api-wrapper

Usage

  1. [GDrive](#gdriveapiwGDrive)
  2. [Files](#gdriveapiwFiles)
  3. [Permissions](#gdriveapiwPermissions)
  4. [About](#gdriveapiwAbout)

[GDrive](#cgdriveapiwGDrive)

This is the "entry point" of the wrapper. It contains only static methods and fields.

import GDrive from "expo-google-drive-api-wrapper";
  • setAccessToken() Sets the access token for use in subsequent calls to the api. Get the token from a package you choose to use.
     GDrive.setAccessToken(accessToken);
  • init() Initializes the wrapper.
     GDrive.init();
    or
    	    const params = {
    	        files: {
    		        boundary: String // The boundary string for multipart file uploads. Default: "foo_bar_baz".
    	        }
    	    };
     
     GDrive.init(params);
  • isInitialized() Returns true if an access token has been supplied, false otherwise.
     GDrive.isInitialized() ? <some code> : <some other code>;

[Files](#cgdriveapiwFiles)

  • createFileMultipart() Creates a file using multipart upload. Returns the result of fetch(). If contents is a base64 string, set isBase64 to true.
     const contents = "My text file contents";
     // or
     const contents = [10, 20, 30];
     
     GDrive.files.createFileMultipart(
         contents,
         "corresponding mime type", {
    	            parents: ["root"],
    	            name: "My file"
         },
         isBase64);
         
  • delete()

    Deletes the specified file returning the result of fetch().

    	    GDrive.files.delete(fileId);
  • get()

    Gets a file's metadata or a text-file's content by ID. By default the metadata is returned. Use download() for binary files. For queryParams see "Optional query parameters" here. If you want the content of a text-file and not its metadata add alt: "media" to queryParams.

    		const queryParams = { ... };
    		GDrive.files.get(fileId, queryParams);
    	
  • download()

    	Downloads the specified text or binary file.
    
    	For `downloadFileOptions` see the description of `downloadFile()` [here](https://www.npmjs.com/package/react-native-fs). Please, bear in mind that `fromUrl` is set automatically and any user supplied value will be overwritten.

    The fileName parameter must be the name of the file with the base64 extension or text

    	The meaning of `queryParams` is the same as in `get()`.
    
    	The function returns the result of `RNFS.downloadFile(downloadFileOptions)`.
    	
    		GDrive.files.download(fileId, downloadFileOptions, fileName, queryParams);
  • export()

    	[Exports](#https://developers.google.com/drive/v3/reference/files/export) a google document, returning the result of `fetch()`.
    
    	    GDrive.files.export(fileId, mimeType);
  • getId()

    	Gets the id of the first file with the specified metadata. The function returns a `Promise`. It's rejected on failure and resolved to the file id or `undefined` (if nothing is found) on success.
    
     GDrive.files.getId(
         name: String, // The name.
         parents: [String], // The parents.
         mimeType: String, // The mime type.
         trashed: Boolean // Whether the file is trashed. Default: false
     );
    	
  • list()
    	[Lists or searches files](https://developers.google.com/drive/v3/reference/files/list) returning the result of `fetch()`.
    
    		GDrive.files.list({q: "'root' in parents"});
    	
  • update()
    	[Updates](https://developers.google.com/drive/api/v3/reference/files/update) a file's metadata. returning the result of `fetch()`.
    
    		GDrive.files.update("file_id", {
    		    removeParents: "o_parent_id",
    		    addParents: "parent_id",
    		    resource: {
    			modifiedTime: new Date(Date.now()).toISOString(),
    		    },
    		})
  • safeCreateFolder()
    	Gets the id of the first folder with the specified `name` and `parents`, creating the folder if it doesn't exist. The function returns a `Promise` that is rejected on failure and resolved to the folder id on success.
    
     GDrive.files.safeCreateFolder({
         name: "My folder",
         parents: ["root"]
     });

[Permissions](#cgdriveapiwPermissions)

  • create()
    	[Creates](https://developers.google.com/drive/v3/reference/permissions/create) a permission for the specified file returning the result of fetch().
    
     GDrive.permissions.create(
         fileId, {
             emailAddress: 'example@gmail.com',
             role: "reader",
             type: "anyone"
         }, {
             emailMessage: `I shared a file with you.`,
         });
        
  • delete()
    	[Delete](https://developers.google.com/drive/api/v3/reference/permissions/delete) a permission returning the result of fetch().
    
     GDrive.permissions.delete("fileId", "permissionId");

[About](#cgdriveapiwAbout)

  • get()
    	[Gets](https://developers.google.com/drive/api/v3/reference/about/get) information about the user, the user's Drive, and system capabilities returning the result of fetch().
    
     GDrive.about.get({
         fields: 'storageQuota'
     });

Version history

Version numberChanges
v1.2.0GDrive.files.createFileMultipart() isBase64. Merge pull request #10 from duyluonglc/master. Thanks, duyluonglc!
v1.1.1GDrive.files.export() added.
v1.0.11. A critical bug with invalid imports fixed.2. client-side-common-utils deprecated; switched to simple-common-utils.
v1.0.0Initial release.

Written with StackEdit.