Acessar artigos

1. Introdução

Essa API tem o objetivo de gerenciar os arquivos no sistema, permitindo a adição, modificação, visualização, criação de pastas, mudança de pastas e deleção.

RecursosServiçosEndpoints
Enviar ArquivosFazer upload de arquivo/files/{project_id}
Acessar Arquivos em RootAcesso de arquivos/files/{project_id}
Criar pastaCriação de arquivos/files/folder/{project_id}
Deletar ArquivoDeleção de um único arquivo/files/{project_id}/file/{file_id}
Deletar ArquivosDeleção de todos arquivos do projeto/files/{project_id}
Deletar repositórioDeleção do repositório inteiro/files/{project_id}/destroy
Mudar de pastaCriação de arquivos/files/{project_id}/change-folder
Acessar Arquivo na PastaAcesso de arquivos na pasta/files/{project_id}/{file_id}
Deletar PastaDeleção de pasta/files/{project_id}/folder/{folder_id}
Acessar Item por NomeAcessar um item buscando pelo nome/files/{project_id}/key

2. URL Base

Para os usuários, as URLs base é:

api.tagcenter.io

3. Enviar Arquivos

A função uploadPrivateFile() recebe como parâmetro UserEntity, id do projeto, os arquivo e FileUploadDTO.
Busca a pasta delegando para a função publicFilesRepository.findOne(). Caso encontre adiciona o arquivo na pasta, caso não cria uma pasta com a função createFolder() e adiciona o arquivo nela. Caso o tipo do arquivo seja uma pasta, retorna erro 126.

Rota utilizada:

Post /files/{project_id}

Exemplo:

Post /files/141

Retorno do exemplo:

[
   {
      "url":"https://cdn.tagchat.online/projects/141/147/pexels-canva-studio-31532011651771868809.jpg",
      "key":"pexels-canva-studio-31532011651771868809.jpg",
      "type":"file",
      "mimetype":"image/jpeg",
      "path":"/147/",
      "fileSize":1310784,
      "project":{
         "id":"141",
         "name":"enriquecimento-leads",
         "title":"Projeto de Enrichment Atualizado2",
         "description":"Description",
         "active":true,
         "timezone":"America/Sao_Paulo",
         "enrichment_enable":true,
         "is_deleted":false,
         "auto_social_point":true,
         "avatar":null,
         "owner":{
            "id":"157",
            "email":"naiane@tagchat.com.br",
            "phoneNumber":"5517991869702",
            "name":"SISTEMA TAGCENTER",
            "active":false,
            "isRegisteredWithGoogle":false,
            "isTwoFactorAuthenticationEnabled":false,
            "isEmailConfirmed":false,
            "isPhoneNumberConfirmed":false,
            "stripe_customer_id":null,
            "user_language":"pt-BR",
            "integration_id":null,
            "address":null,
            "avatar":null
         }
      },
      "owner":{
         "id":"155",
         "email":"teste@tagchat.com.br",
         "phoneNumber":"5517991869702",
         "name":"SISTEMA TAGCENTER",
         "active":false,
         "isRegisteredWithGoogle":false,
         "isTwoFactorAuthenticationEnabled":false,
         "isEmailConfirmed":false,
         "isPhoneNumberConfirmed":false,
         "stripe_customer_id":null,
         "user_language":"pt-BR",
         "integration_id":null,
         "address":null,
         "avatar":null
      },
      "parent":{
         "id":"147",
         "url":null,
         "key":"teste",
         "type":"folder",
         "mimetype":"directory/folder",
         "path":"/",
         "fileSize":"0"
      },
      "id":"816"
   }
]
ChaveTipoDescrição
urlstringUrl do arquivo
keystringChave do arquivo
typestringTipo do arquivo
mimetypestringMIME-Type do arquivo
pathstringCaminho do arquivo
fileSizestringTamanho do arquivo
idstringId do arquivo

4. Acessar Arquivos no Root

A função getRootFiles() recebe como parâmetro o id do projeto. Delega para a função projectEntity.findOne() a busca do projeto pelo id no repositório. Retorna o arquivo encontrado. Caso não encontre retorna erro 125.

Rota utilizada:

Get /files/{project_id}

5. Criar Pasta

A função createFolder() recebe como parâmetros UserEntity, o id do projeto, o nome do arquivo e parentId.

Rota utilizada:

Post /files/folder/{project_id}

Body:

{
parent_id: int,
folder_name: string
}

Exemplo:

{
"parent_id": 238,
"folder_name": "teste-api"
}

Retorno do exemplo:

{
   "url":null,
   "key":"teste-api",
   "type":"folder",
   "mimetype":"directory/folder",
   "path":"/",
   "fileSize":0,
   "project":{
      "id":"141",
      "name":"enriquecimento-leads",
      "title":"Projeto de Enrichment Atualizado2",
      "description":"Description",
      "active":true,
      "timezone":"America/Sao_Paulo",
      "enrichment_enable":true,
      "is_deleted":false,
      "auto_social_point":true,
      "avatar":null,
      "owner":{
         "id":"157",
         "email":"naiane@tagchat.com.br",
         "phoneNumber":"5517991869702",
         "name":"SISTEMA TAGCENTER",
         "active":false,
         "isRegisteredWithGoogle":false,
         "isTwoFactorAuthenticationEnabled":false,
         "isEmailConfirmed":false,
         "isPhoneNumberConfirmed":false,
         "stripe_customer_id":null,
         "user_language":"pt-BR",
         "integration_id":null,
         "address":null,
         "avatar":null
      }
   },
   "owner":{
      "id":"155",
      "email":"teste@tagchat.com.br",
      "phoneNumber":"5517991869702",
      "name":"SISTEMA TAGCENTER",
      "active":false,
      "isRegisteredWithGoogle":false,
      "isTwoFactorAuthenticationEnabled":false,
      "isEmailConfirmed":false,
      "isPhoneNumberConfirmed":false,
      "stripe_customer_id":null,
      "user_language":"pt-BR",
      "integration_id":null,
      "address":null,
      "avatar":null
   },
   "parent":null,
   "id":"817"
}

6. Deletar Arquivo

A função deleteFile() recebe como parâmetro o id do arquivo e o id do projeto. Busca o arquivo no
repositório com a função .publicFilesRepository.findOne(). Caso não encontra, retorna erro 127. Se encontra, chama a função deletePrivateFile() e deleta o arquivo do repositório.

Rota utilizada:

Del /files/{project_id}/file/{file_id}

7. Deletar Arquivos

A função deleteFiles() recebe como parâmetro os ids dos arquivos e o id do projeto. Mapea os arquivos no repositório com a função filesId.map() e publicFilesRepository.findOne(). Caso não encontre, retorna erro 127.
Caso encontre deleta os arquivos chamando a função deletePrivateFile(), para arquivos privados, e
publicFilesRepository.delete(), para arquivos públicos.

Rota utilizada:

Del /files/{project_id}

8. Deletar Todo os Arquivos

A função deleteAllFiles() recebe como parâmetro o id do projeto e busca o arquivo no repositório com a
função publicFilesRepository.find(). Caso não tenha arquivos no projeto, retorna o erro 130. Caso encontre, mapea todos os arquivo com files.map() e deleta com a função deletePrivateFile() e
publicFilesRepository.delete().

Rota utilizada:

Del /files/{project_id}/destroy

9. Mudar Pasta

A função changeFileFromFolder() recebe como parâmetro o id do projeto, o id da pasta de origem e o id da pasta que deseja migrar. Busca o arquivo com a função publicFilesRepository.findOne(). Caso não encontre retorna erro 127. Caso encontre, busca a pasta destino com a função publicFilesRepository.findOne(), se não encontra ou se for um arquivo retorna o erro 128 e 129, respectivamente. Copia o objeto a ser transferido de pasta com a função s3.copyObject(). Caso não consiga transferir, retorna o erro 129. Atualiza o repositório com a função publicFilesRepository.update() e deleta o arquivo da pasta anterior com a função deleteObject()

Rota utilizada:

Patch /files/{project_id}/change-folder

10. Acessar Arquivo na Pasta

A função getFilesFromFolder() recebe como parâmetro o id do projeto e o id da pasta. Encontra o projeto
chamando a função projectEntity.findOne(). Caso não encontre, retorna erro 125. Retorna um array contendo todos os arquivos.

Rota utilizada:

Get /files/{project_id}/{file_id}

Exemplo:

Get /files/141/820

Retorno do exemplo:

[
{
"id": "824",
"url": "https://cdn.tagchat.online/projects/141/820/pexels-tima-miroshnichenko75672311651776506954.jpg",
"key": "pexels-tima-miroshnichenko-75672311651776506954.jpg",
"type": "file",
"mimetype": "image/jpeg",
"path": "/820/",
"fileSize": "5009352",
"parent_id": 820
}
]

11. Deletar Pasta

A função deleFolder() recebe como parâmetro o id da pasta e do projeto. Busca a pasta no repositório usando a função publicFilesRepository.findOne(). Busca os itens que serão deletados com a função findItems(). Deleta os arquivos com as funções deletePrivateFile() e publicFilesRepository.delete().

Rota utilizada:

Del /files/{project_id}/folder/{folder_id}

12. Acessar Itens por Nome

A função getItemByName() recebe como parâmetro o id do projeto e a o nome do projeto a ser buscado.
Delega para a função projectEntity.findOne() buscar o projeto pelo id. Se não encontra, retorna o erro 125. Se encontra, procura os arquivos no repositório com a função publicFilesRepository.findOne(). Retorna o item encontrado.

Rota utilizada:

Get /files/{project_id}/key

Body:

{
folder_name: string
}

Exemplo:

{
"folder_name": "teste-api4"
}

Retorno do exemplo:

{
"id": "820",
"url": null,
"key": "teste-api4",
"type": "folder",
"mimetype": "directory/folder",
"path": "/",
"fileSize": "0"
}

13. Códigos de Resposta HTTP

CódigoDescrição
125Project with this id does not exist
127File with this id does not exist
126Type file should not be a parent folder or Invalid file mimetype
128Parent file with this id does not exist
129File with this id is not a folder or Change object to other folder failed
130There are no files in the repository
401Unauthorized
crosslistmenu-circle