# Materias de Alumno

## <mark style="color:red;">Parámetros</mark>

| Parámetro  | Tipo     | Descripción                                |
| ---------- | -------- | ------------------------------------------ |
| **codigo** | `string` | Código del alumno                          |
| **ciclo**  | `string` | Ciclo del que se desea obtener información |

## <mark style="color:red;">Uso</mark>

### <mark style="color:orange;">Básico</mark>

{% tabs %}
{% tab title="Helper" %}

```php
$horario = siiau()->materia()->todasDeAlumno(
    codigo: '1234567890',
    ciclo: '202320',
);
```

{% endtab %}

{% tab title="Facade" %}

```php
use Siiau\ApiClient\Facades\Siiau;

$horario = Siiau::materia()->todasDeAlumno(
    codigo: '1234567890',
    ciclo: '202320',
);
```

{% endtab %}

{% tab title="Injection" %}

```php
use Siiau\ApiClient\SiiauConnector;

public function foo(SiiauConnector $siiau): void
{
    $horario = $siiau->materia()->todasDeAlumno(
        codigo: '1234567890',
        ciclo: '202320',
    );
}
```

{% endtab %}
{% endtabs %}

### <mark style="color:orange;">Avanzado</mark>

{% tabs %}
{% tab title="Por sync request" %}

```php
use Siiau\ApiClient\Requests\HorarioRequest;

$response = siiau()->send(new HorarioRequest(
    codigo: '1234567890',
    ciclo: '202320',
));
```

{% endtab %}

{% tab title="Por async request" %}

```php
use Siiau\ApiClient\Requests\HorarioRequest;

$promise = siiau()->sendAsync(new HorarioRequest(
    codigo: '1234567890',
    ciclo: '202320',
));

$promise
   ->then(static function (Response $response) {
       // Handle Response
   })
   ->otherwise(static function (RequestException $exception) {
       // Handle Exception
    });
```

{% endtab %}
{% endtabs %}

***

## <mark style="color:red;">API</mark>

## POST /api/horarios-alumno

> Obtiene los horarios de un alumno.

```json
{"openapi":"3.0.0","info":{"title":"Documentación de APIs de consulta al WebServer de SIIAU","version":"1.0.0"},"tags":[{"name":"Alumnos","description":"API Endpoints para manejo de Alumnos"}],"servers":[{"url":"https://ws.itrans.cucei.udg.mx","description":"API Server"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","description":"Ingrese un Token con el formato: (Bearer \\<token\\>). Ejemplo: Bearer qwerty123456","name":"Authorization","in":"header"}}},"paths":{"/api/horarios-alumno":{"post":{"tags":["Alumnos"],"summary":"Obtiene los horarios de un alumno.","operationId":"5245cec9512fce3bfc840485d03b0034","parameters":[{"name":"codigo","in":"query","description":"Código del alumno.","required":true},{"name":"ciclo","in":"query","description":"Ciclo escolar de un alumno en formato 202320 para referirse a 2023-B.","required":true}],"responses":{"200":{"description":"Json múltiple con información de cada materia y su horario, con respecto a un alumno y ciclo especificado","content":{"application/json":{"schema":{"properties":{"nrc":{"type":"string"},"Horario":{"type":"array","items":{"type":"string"}},"descripcion":{"type":"string"},"codigoProfesor":{"type":"string"},"fechaFin":{"type":"string"},"nombreProfesor":{"type":"string"},"seccion":{"type":"string"},"clave":{"type":"string"},"creditos":{"type":"string"},"fechaInicio":{"type":"string"}},"type":"object"}}}},"404":{"description":"Error: Not Found","content":{"application/json":{"schema":{"properties":{"error":{"description":"Descripción del error","type":"string","nullable":"false"}},"type":"object"}}}},"500":{"description":"Error: response status is 500","content":{"application/json":{"schema":{"properties":{"error":{"description":"Descripción del error","type":"string","nullable":"false"}},"type":"object"}}}}}}}}}
```
