Kit de desenvolvimento feito para interagir com as APIs do Opencode da Tray, facilitando as atualizações e suporte a novas versões. Criado utilizando NodeJs e Typescript.
Rode o comando abaixo para fazer a instalação desse pacote.
npm install @tray-tecnologia/opencode-sdk
Os temas precisam seguir uma estrutura bem determinada, caso contrário os arquivos não serão aceitos dentro da API. A estrutura a seguir ilustra as pastas obrigatórios dentro do tema.
├── configs
├── css
├── elements
│ ├── snippets
├── img
├── js
├── layouts
├── pages
Somente as pastas css
, img
, elements
e js
suportam subpastas. Tentar criar pastas nas outras pastas irá gerar o erro SubfolderNotAllowedError.
Fique atento tambem aos formatos permitidos para os arquivos. Eles são: .ttf
, .otf
, .eot
, .woff
, .woff2
, .jpg
, .jpeg
, .gif
, .png
, .svg
, .css
, .scss
, .html
, .js
, .json
Todos os métodos disponíveis no SDK devolvem Promises. Ao serem resolvidas elas retornam os dados da API. Caso sejam rejeitadas possíveis erros podem ter acontecido.
Abaixo um exemplo simples de uso do SDK.
const Sdk = require('@tray-tecnologia/opencode-sdk').default;
const client = new Sdk({
key: 'YOUR-KEY-HERE',
password: 'YOUR-PASSWORD-HERE',
themeId: 1,
debug: false,
});
client
.checkConfiguration()
.then((data) => console.log(data))
.catch((err) => console.error(err));
Construtor da classe. Deve-se passar um objeto do tipo Config. Retorna uma instância de Api
.
Valida se os dados passados na criação do objeto estão corretos. Retorna objeto ApiConfigurationResponse
se promise for resolvida ou uma instância de ApiError
caso contrário.
Limpa o cache do tema informado. Caso o parâmetro opcional themeId
não seja informado, será usado o tema configurado. Retorna true
se promise for resolvida, ou uma instância de ApiError
caso contrário.
Obtem a lista de todos os temas disponíveis na loja. Retorna objeto ApiListThemesResponse
se promise for resolvida, ou uma instância de ApiError
caso contrário.
Cria um tema na loja. Deve ser informado o parâmetro obrigatório name
, que será o nome do tema na loja. O parâmetro opcional base
indica qual tema deve ser usado como base para criação desse novo tema. Caso não seja informado, será usado o tema padrão da plataforma. Retorna objeto ApiCreateThemeResponse
se a promise for resolvida, ou uma instância de ApiError
caso contrário.
Remove o tema informado. Retorna true
se a promise for resolvida, ou uma instância de ApiError
caso contrário.
Lista todos os arquivos do tema configurado. Retorna objeto ApiAssetsResponse
se a promise for resolvida, ou uma instância de ApiError
caso contrário.
Obtem o conteúdo do arquivo solicitado. Retorna objeto ApiAssetContentResponse
se a promise for resolvida, ou uma instância de ApiError
caso contrário.
Cria ou atualiza um arquivo no tema configurado. Deve-se passar um objeto do tipo SendAsset. Retorna true
se a promise for resolvida, ou uma instância de ApiError
caso contrário.
Remove um arquivo do tema informado. Deve ser informado o parâmetro asset
contento o nome do arquivo a ser removido. Atenção: ele precisa iniciar com uma barra /
. Retorna true
se a promise for resolvida, ou uma instância de ApiError
caso contrário.
O SDK contá com uma opção de depuração. Ao passar o parâmetro debug: true
na inicialização da API faz com que um arquivo de log seja gerado para toda operação realizada com o SDK. Por padrão essa opção vem desabilitada. O nome do arquivo de depuração gerado é .debug.sdk.log
. Por iniciar com ponto .
ele não é enviado para loja.
O Sdk possui alguns tipos especiais que são expostos e podem ser usados.
Estrutura com dados para a configuração e conexão com a API da Tray.
type Config = {
key: string;
password: string;
themeId: number | null;
debug?: boolean;
};
Estrutura com dados para ser enviado a API da Tray para criação e/ou atualização do arquivo.
type SendAsset = {
asset: string;
data: Buffer;
isBinary: boolean;
};
O Opencode SDK pode retornar vários erros que indicam problemas diferentes durante a execução do programa. Verifique cada um deles abaixo.
Retornado caso os dados de acesso estejam incorretos.
Retornado quando não é possível verificar os dados de configuração especificados.
Retornado quando um parâmetro obrigatório está inválido ou não foi enviado.
Retornado quando o id do tema não existe.
Retornado quando o asset requisitado não existe no tema.
Retornado quando não é possível remover um arquivo estatico do tema. Arquivos estáticos são quaisquer arquivos diferentes dos .html
e que possuem código Twig.
Retornado quando não é possível remover um arquivo dinâmico do tema. Arquivos dinâmicos são arquivos .html
que possuem código Twig.
Retornado ao tentar enviar um arquivo com extensão não suportada.
Retornado ao tentar enviar um arquivo fora das pastas padrões permitidas.
Retornado ao tentar criar subpastas em pastas não permitidas.
Opencode SDK é um projeto de código-fonte aberto no qual todos são bem-vindos a ajudar, contribuindo com o projeto. Fique a vontade para reportar problemas, sugerir melhorias ou enviar código de novas funcionalidades. Confira Como contribuir com o projeto e ajudá-lo a melhorar a cada dia.