npm package: @integrance/google-drive-v3-helper
Description: Biblioteca que ajuda a trabalhar com a api V3 do google drive de maneira mais simplificada e com funcionalidades prontas.
Author: Leonardo Petta do Nascimento
Latest version: 0.0.3

# Google Drive V3 Helper

> Biblioteca que ajuda a trabalhar com a api V3 do Google Drive de maneira mais simplificada e com funcionalidades prontas.

# Objetivo

Esta biblioteca foi criada, a priori, para o uso em um outro produto para a startup Integrance, que, durante o desenvolvimento, foi notado uma pequena dificuldade em entender como algumas coisas funcionavam dentro do SDK da Google e como poderia ser chato e repetitivo a escrita de algumas funções. Para tentar resolver isso, a biblioteca nasceu para facilitar o trabalho com a api V3 do Google Drive e fornecer algumas funcionalidades prontas.

## Funções

Atualmente, a biblioteca possui as seguintes funcionalidades:

-   **Drive**

    -   **saveFile**: _Salva um arquivo no drive;_
    -   **getFile**: _Pega um arquivo do drive (informações e conteúdo);_
    -   **getFilesInFolder**: _Pega todos os arquivos de uma pasta do drive (informações);_
    -   **getFoldersInFolder**: _Pega todas as pastas de uma pasta do drive (informações);_
    -   **getAllInFolder**: _Pega todos os arquivos e pastas de uma pasta do drive (informações);_
    -   **createFolder**: _Cria uma pasta no drive;_
    -   **deleteFileOrFolder**: _Deleta um arquivo ou pasta do drive;_
    -   **copyFile**: _Copia um arquivo para outra (ou não) pasta do drive;_
    -   **move**: _Move um arquivo para outra pasta do drive;_
    -   **buildFunction**: _Fornece uma instância do_ **drive_v3.Drive** _para criar e utilizar funções extras que não foram feitas acima;_

    **_Novas funcionalidade serão adicionadas assim que possível. Por enquanto a biblioteca está me ajudando em outros sistemas que necessitam de conexão com a API do Google Drive V3, então enquanto estiver me suprindo, ela será bem estática e com poucas evoluções._**

## Instalação

Para instalar a biblioteca, basta realizar a instalação com um dos comandos abaixo:

**Yarn:** `yarn add @integrance/google-drive-v3-helper`

**Npm:** `npm -i @integrance/google-drive-v3-helper`

## Uso

Para o uso da biblioteca, é necessário ter os seguintes requisitos:

**1º** - Criar um projeto no Google Cloud Platform;

**2º** - Ativar a API do Google Drive em seu projeto;

**3º** - Criar uma conta de serviço no Google Cloud Platform;

Após ter cumprido os requisitos, baixe o arquivo de credenciais (estrutura abaixo) que foi gerado nos passos anteriores:

```json
// credentials.json
{
    "type": "",
    "project_id": "",
    "private_key_id": "",
    "private_key": "",
    "client_email": "",
    "client_id": "",
    "auth_uri": "",
    "token_uri": "",
    "auth_provider_x509_cert_url": "",
    "client_x509_cert_url": ""
}
```

Utilize-o da maneira que achar mais conveniente. No exemplo abaixo, iremos deixar o arquivo **_credentials.json_** na raiz do projeto e importaremos alguns informações de dentro dele utilizando `require`.

O exemplo abaixo mostra a configuração básica para a biblioteca:

```js
// index.js
const { Drive } = require("@integrance/google-drive-v3-helper");

const { client_email, private_key } = require("./credentials.json");
const scopes = ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"];

const driveService = new Drive(client_email, private_key, scopes);

//driveService possui diversas funções prontas para serem utilizadas, fique livre para verificar seu conteúdo.
```

## Licença

    Este projeto é licenciado sob a MIT License

    Copyright (c) 2022 Leonardo Petta do Nascimento

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.

## Meta

**Autor:** Leonardo Petta do Nascimento

**Email:** leonardocps9@gmail.com

**Linkedin:** https://www.linkedin.com/in/leonardo-petta-do-nascimento-75674015b/

**Site pessoal:** https://leonardopetta.dev/portfolio-web/