diff --git a/__tests__/periodos-letivos.spec.ts b/__tests__/periodos-letivos.spec.ts new file mode 100644 index 0000000..12a9e84 --- /dev/null +++ b/__tests__/periodos-letivos.spec.ts @@ -0,0 +1,17 @@ +require('dotenv').config() +import Debug from 'debug' +const debug = new Debug('spec:periodos-letivos') + +import { SuapiV2 } from '../src/index' +import { expect } from '@jest/globals' + +const { MATRICULA, SENHA } = process.env + +test('deve retornar os periodos letivos', async () => { + const authToken: string = await SuapiV2.getAuthToken(String(MATRICULA), String(SENHA)) + + const periodosLetivos = await SuapiV2.getPeriodosLetivos(authToken) + debug(periodosLetivos) + + expect(periodosLetivos).toBeDefined() +}) \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index bd2e1cd..f26560c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "suapi", - "version": "0.7.0", + "version": "0.8.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 40a176a..b97d4e7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "suapi", - "version": "0.7.0", + "version": "0.8.0", "description": "Wrapper para acesso a API do SUAP versão 2", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/src/SuapiV2.ts b/src/SuapiV2.ts index 59623fd..f7c5b09 100644 --- a/src/SuapiV2.ts +++ b/src/SuapiV2.ts @@ -5,6 +5,7 @@ import ITurmaVirtualLiteV2 from './models/ITurmaVirtualLiteV2' import ITurmaVirtualV2 from './models/ITurmaVirtualV2' import IPeriodosHorariosV2 from './models/IPeriodosHorariosV2' import IHorarioV2 from './models/IHorarioV2' +import IPeriodoLetivo from './models/IPeriodoLetivo' import IBoletim from './models/IBoletim' export class SuapiV2 { @@ -12,6 +13,7 @@ export class SuapiV2 { public static RESOURCES_DADOS_PESSOAIS_URL: string = 'minhas-informacoes/meus-dados/' public static RESOURCES_TURMAS_VIRTUAIS_URL: string = 'minhas-informacoes/turmas-virtuais' public static RESOURCES_TURMA_VIRTUAL_URL: string = 'minhas-informacoes/turma-virtual' + public static RESOURCES_PERIODOS_LETIVOS_URL: string = 'minhas-informacoes/meus-periodos-letivos' public static RESOURCES_BOLETIM_URL: string = 'minhas-informacoes/boletim' public static PERIODOS_HORARIOS_V2: IPeriodosHorariosV2 = { @@ -101,6 +103,18 @@ export class SuapiV2 { } } + public static async getPeriodosLetivos(authToken: string): Promise> { + try { + const PERIODOS_LETIVOS_URL = `${SuapiV2.RESOURCES_PERIODOS_LETIVOS_URL}` + return await SuapiV2.getByAuthorization( + PERIODOS_LETIVOS_URL, + authToken + ) + } catch (error) { + throw error + } + } + public static async getHorarios(authToken: string, ano: Number = 2020, periodo: Number = 1): Promise> { try { const TURMAS_VIRTUAIS_URL = `${SuapiV2.RESOURCES_TURMAS_VIRTUAIS_URL}/${ano}/${periodo}` @@ -163,4 +177,4 @@ export class SuapiV2 { return response.data } -} \ No newline at end of file +} diff --git a/src/models/IPeriodoLetivo.ts b/src/models/IPeriodoLetivo.ts new file mode 100644 index 0000000..e440e37 --- /dev/null +++ b/src/models/IPeriodoLetivo.ts @@ -0,0 +1,4 @@ +export default interface IPeriodoLetivo { + ano_letivo: number, + periodo_letivo: number +} \ No newline at end of file