# sysfilezillaserverapi

> SysFileZillaServerAPI e uma API, que roda em Express e utiliza o repositório CtrlFileZillaServer para gerenciar o FileZilla Server de forma remota

Latest version **1.0.3** (published 2021-01-21) · MIT license · 0 weekly downloads

## Install

```sh
npm install sysfilezillaserverapi
pnpm add sysfilezillaserverapi
yarn add sysfilezillaserverapi
bun add sysfilezillaserverapi
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.3 |
| Published | 2021-01-21 |
| First published | 2021-01-21 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 6 |
| Unpacked size | 18.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Paloma Macetko |
| Maintainers | cmacetko |
| Keywords | filezilla, filezilla server, ftp, ftp server, listar contas, criar conta, editar conta, deletar conta |

## Links

- npm: https://www.npmjs.com/package/sysfilezillaserverapi
- Repository: https://github.com/cmacetko/sysfilezillaserverapi
- Issues: https://github.com/cmacetko/sysfilezillaserverapi/issues
- npm.io page: https://npm.io/package/sysfilezillaserverapi

## Dependencies (6)

- [path](https://npm.io/package/path.md) ^0.12.7
- [express](https://npm.io/package/express.md) ^4.17.1
- [body-parser](https://npm.io/package/body-parser.md) ^1.19.0
- [express-basic-auth](https://npm.io/package/express-basic-auth.md) ^1.2.0
- [simple-node-logger](https://npm.io/package/simple-node-logger.md) ^18.12.24
- [ctrlfilezillaserver](https://npm.io/package/ctrlfilezillaserver.md) ^1.0.1

## Alternatives

- [lodash.startswith](https://npm.io/package/lodash.startswith.md) — 769.7K weekly downloads
- [@tarojs/service](https://npm.io/package/@tarojs/service.md) — 33.9K weekly downloads
- [io.extendreality.tilia.indicators.spatialtargets.unity](https://npm.io/package/io.extendreality.tilia.indicators.spatialtargets.unity.md) — 131 weekly downloads
- [@rtarojs/taro](https://npm.io/package/@rtarojs/taro.md) — 90 weekly downloads
- [node-branch-io](https://npm.io/package/node-branch-io.md) — 50 weekly downloads

## Recent versions

- 1.0.3 (latest) — 2021-01-21
- 1.0.2 — 2021-01-21

## README

# SysFileZillaServerAPI

>  **SysFileZillaServerAPI** é uma **API**, que roda em Nodejs e permite gerenciar o Filezilla Server utilizando o repositório **CtrlFileZillaServer**

![Language](https://img.shields.io/badge/language-nodejs-orange)
![Platforms](https://img.shields.io/badge/platforms-Windows-blue)
![License](https://img.shields.io/github/license/cmacetko/sysfilezillaserverapi)
[![HitCount](http://hits.dwyl.com/cmacetko/sysfilezillaserverapi.svg)](http://hits.dwyl.com/cmacetko/sysfilezillaserverapi)

## Diretório do Filezilla Server

O Diretório do Filezilla Server padrão é **C:\\Program Files (x86)\\FileZilla Server\\** porém pode ser alterado na variável **cfg_pathfilezilla**

## Porta

A aplicação roda na porta **9092** porém pode ser alterado na variável **cfg_porta**

## Autenticação

O acesso a api é feito utilizando **autenticação básica HTTP** *(Basic Auth)*, e os usuários/senha são controlados na variável **cfg_usuarios**

## Método

Toda chamada a API é feita via **POST** enviando no corpo da solicitação o JSON com os parâmetros

## Sucesso

Em caso de sucesso, será retornado um json com dois valores:

- **httpcode:** 200
- **body:** Json com o resultado da requisição

**Exemplo:**
```json
{
"httpcode": 200,
"body":{
}
}
```

> Em alguns métodos não é retornado o **body**, são métodos que apenas retornam o **httpcode: 200** para indicar o **SUCESSO** da requisição

## Erro

Em caso de erro, será retornado um json com dois valores:

- **httpcode:** 500
- **body/Msg:** Mensagem de erro

**Exemplo:**
```json
{
"httpcode": 500,
"body":{
"Msg": "Alguns dados nao foram preenchidos"
}
}
```

## Dependências

Para o funcionamento deste método é necessário a dependência do pacote **CtrlFileZillaServer**:

[![sysutilapi](https://github-readme-stats.vercel.app/api/pin/?username=cmacetko&repo=sysutilapi)](https://github.com/cmacetko/sysutilapi)


# Métodos

## Listagem de Contas

**Método:** 
contas_listar

**Exemplo:**
```json
null
```

**Retorno:**
```json
{
  "httpcode": 200,
  "body": [
    {
      "Nome": "teste1",
      "Diretorio": "C:\\",
      "Permissoes": {
        "FileRead": true,
        "FileWrite": true,
        "FileDelete": true,
        "DirCreate": true,
        "DirDelete": true,
        "DirList": true,
        "DirSubdirs": true
      }
    }
  ]
}
```

## Criar Conta

**Método:** 
contas_criar

**Exemplo:**
```json
{   
  "Conta": "testeabc",
  "Senha": "aaabbb", 
  "Diretorio": "C:\\PastaTeste1", 
  "Permissoes": {
    "FileRead": true,
    "FileWrite": true,
    "FileDelete": true,
    "DirCreate": true,
    "DirDelete": true,
    "DirList": true,
    "DirSubdirs": true
  } 
}
```

**Retorno:**
```json
{
  "httpcode": 200
}
```

## Verificar se Conta Existe

**Método:** 
contas_existe

**Exemplo:**
```json
{   
  "Conta": "testeabc"
}
```

**Retorno:**
```json
{
  "httpcode": 200,
  "body": true
}
```

**Detalhes:**
Em *body* será retornado um *boolean*:
- **true:** A conta existe
- **falae:** A conta não existe

## Deletar Conta

**Método:** 
contas_deletar

**Exemplo:**
```json
{   
  "Conta": "testeabc"
}
```

**Retorno:**
```json
{
  "httpcode": 200
}
```

## Alterar Conta

**Método:** 
contas_alterar

**Exemplo:**
```json
{   
  "Conta": "testeabc",
  "Senha": "aaabbb", 
  "Diretorio": "C:\\PastaTeste1", 
  "Permissoes": {
    "FileRead": true,
    "FileWrite": true,
    "FileDelete": true,
    "DirCreate": true,
    "DirDelete": true,
    "DirList": true,
    "DirSubdirs": true
  } 
}
```

**Retorno:**
```json
{
  "httpcode": 200
}
```

## Alterar Senha de Conta

**Método:** 
contas_alterar_senha

**Exemplo:**
```json
{   
  "Conta": "testeabc",
  "Senha": "aaabbb"
}
```

**Retorno:**
```json
{
  "httpcode": 200
}
```

## Alterar Diretóiro de Conta

**Método:** 
contas_alterar_diretorio

**Exemplo:**
```json
{   
  "Conta": "testeabc",
  "Diretorio": "C:\\PastaTeste1"
}
```

**Retorno:**
```json
{
  "httpcode": 200
}
```

## Alterar Permissões de Conta

**Método:** 
contas_alterar_permissoes

**Exemplo:**
```json
{   
  "Conta": "testeabc",
  "Permissoes": {
    "FileRead": true,
    "FileWrite": true,
    "FileDelete": true,
    "DirCreate": true,
    "DirDelete": true,
    "DirList": true,
    "DirSubdirs": true
  } 
}
```

**Retorno:**
```json
{
  "httpcode": 200
}
```

# Referências

## Permissões

O nó de permissões possui as permissões abaixo:
- **FileRead:** Ler Arquivos
- **FileWrite:** Criar/Editar Arquivos
- **FileDelete:** Deletar Arquivos
- **DirCreate:** Criar Diretório
- **DirDelete:** Deletar Diretório
- **DirList:** Listar Diretórios
- **DirSubdirs:** Exibir Sub Diretórios

Os valores das variaveis é sempre um **boolean**, onde:
- **true:** Tem permissão
- **false:** Não tem permissão

# Contato

**Paloma Macetko**
- cmacetko@gmail.com
- https://github.com/cmacetko/
- https://www.npmjs.com/~cmacetko
- https://cmacetko.medium.com
- https://www.facebook.com/cmacetko
- https://www.instagram.com/cmacetko/
- https://twitter.com/cmacetko
- [Skype: cmacetko](skype:cmacetko "cmacetko")
- [Whatsapp: 47-91277858](https://wa.me/554791277858 "Whatsapp: 47-91277858")

---
_Source: https://npm.io/package/sysfilezillaserverapi · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
