Practica Final - Aplicaciones Moviles ITLA
BASE_URL con la URL de tu servidor (ej: http://localhost:8000/api).datax via form-encoded.
Los endpoints marcados con Auth requieren enviar el token en el header Authorization.
El token se obtiene al hacer login o activar la cuenta. Debes guardarlo en tu app y enviarlo en cada peticion protegida.
Formato del header: Authorization: Bearer TU_TOKEN_AQUI
import 'package:http/http.dart' as http;
import 'dart:convert';
import 'package:shared_preferences/shared_preferences.dart';
const String BASE_URL = 'http://TU_SERVIDOR/api';
// ---- Guardar token al hacer login ----
Future<void> login(String matricula, String contrasena) async {
final response = await http.post(
Uri.parse('$BASE_URL/auth/login'),
body: {'datax': jsonEncode({'matricula': matricula, 'contrasena': contrasena})},
);
final data = jsonDecode(response.body);
if (data['success']) {
final prefs = await SharedPreferences.getInstance();
await prefs.setString('token', data['data']['token']);
}
}
// ---- Obtener token guardado ----
Future<String?> getToken() async {
final prefs = await SharedPreferences.getInstance();
return prefs.getString('token');
}
// ---- Llamada GET con Bearer Token ----
Future<Map> getConAuth(String endpoint) async {
final token = await getToken();
final response = await http.get(
Uri.parse('$BASE_URL/$endpoint'),
headers: {
'Authorization': 'Bearer $token', // <-- ASI SE PASA EL TOKEN
},
);
return jsonDecode(response.body);
}
// ---- Llamada POST con Bearer Token ----
Future<Map> postConAuth(String endpoint, Map datos) async {
final token = await getToken();
final response = await http.post(
Uri.parse('$BASE_URL/$endpoint'),
headers: {
'Authorization': 'Bearer $token', // <-- ASI SE PASA EL TOKEN
},
body: {
'datax': jsonEncode(datos),
},
);
return jsonDecode(response.body);
}
// ---- Ejemplo de uso ----
// final perfil = await getConAuth('perfil');
// final resultado = await postConAuth('vehiculos', {'placa': 'A123', ...});
const BASE_URL = 'http://TU_SERVIDOR/api';
// ---- Guardar token al hacer login ----
async function login(matricula, contrasena) {
const formData = new URLSearchParams();
formData.append('datax', JSON.stringify({ matricula, contrasena }));
const response = await fetch(`${BASE_URL}/auth/login`, {
method: 'POST',
body: formData,
});
const data = await response.json();
if (data.success) {
localStorage.setItem('token', data.data.token);
}
return data;
}
// ---- Obtener token guardado ----
function getToken() {
return localStorage.getItem('token');
}
// ---- Llamada GET con Bearer Token ----
async function getConAuth(endpoint) {
const token = getToken();
const response = await fetch(`${BASE_URL}/${endpoint}`, {
headers: {
'Authorization': `Bearer ${token}`, // <-- ASI SE PASA EL TOKEN
},
});
return await response.json();
}
// ---- Llamada POST con Bearer Token ----
async function postConAuth(endpoint, datos) {
const token = getToken();
const formData = new URLSearchParams();
formData.append('datax', JSON.stringify(datos));
const response = await fetch(`${BASE_URL}/${endpoint}`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`, // <-- ASI SE PASA EL TOKEN
},
body: formData,
});
return await response.json();
}
// ---- Ejemplo de uso ----
// const perfil = await getConAuth('perfil');
// const resultado = await postConAuth('vehiculos', { placa: 'A123', ... });
// ---- auth.service.ts ----
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Storage } from '@ionic/storage-angular';
@Injectable({ providedIn: 'root' })
export class ApiService {
private BASE_URL = 'http://TU_SERVIDOR/api';
constructor(private http: HttpClient, private storage: Storage) {}
// Guardar token al hacer login
async login(matricula: string, contrasena: string) {
const body = new FormData();
body.append('datax', JSON.stringify({ matricula, contrasena }));
const data: any = await this.http.post(`${this.BASE_URL}/auth/login`, body).toPromise();
if (data.success) {
await this.storage.set('token', data.data.token);
}
return data;
}
// Obtener headers con Bearer Token
private async getAuthHeaders(): Promise<HttpHeaders> {
const token = await this.storage.get('token');
return new HttpHeaders({
'Authorization': `Bearer ${token}` // <-- ASI SE PASA EL TOKEN
});
}
// Llamada GET con Bearer Token
async getConAuth(endpoint: string, params: any = {}) {
const headers = await this.getAuthHeaders();
return this.http.get(`${this.BASE_URL}/${endpoint}`, { headers, params }).toPromise();
}
// Llamada POST con Bearer Token
async postConAuth(endpoint: string, datos: any) {
const headers = await this.getAuthHeaders();
const body = new FormData();
body.append('datax', JSON.stringify(datos));
return this.http.post(`${this.BASE_URL}/${endpoint}`, body, { headers }).toPromise();
}
}
// ---- En el componente ----
// const perfil = await this.api.getConAuth('perfil');
// const resultado = await this.api.postConAuth('vehiculos', { placa: 'A123', ... });
import 'package:http/http.dart' as http;
import 'dart:convert';
Future<Map> registro(String matricula) async {
final response = await http.post(
Uri.parse('$BASE_URL/auth/registro'),
body: {
'datax': jsonEncode({'matricula': matricula}),
},
);
return jsonDecode(response.body);
}
// Uso:
final result = await registro('20240096');
print(result['data']['token']); // Token temporal
async function registro(matricula) {
const formData = new URLSearchParams();
formData.append('datax', JSON.stringify({ matricula }));
const response = await fetch(`${BASE_URL}/auth/registro`, {
method: 'POST',
body: formData,
});
return await response.json();
}
// Uso:
const result = await registro('20240096');
console.log(result.data.token); // Token temporal
import { HttpClient } from '@angular/common/http';
registro(matricula: string) {
const body = new FormData();
body.append('datax', JSON.stringify({ matricula }));
return this.http.post(`${this.BASE_URL}/auth/registro`, body);
}
// En el componente:
this.authService.registro('20240096').subscribe(res => {
console.log(res.data.token); // Token temporal
});
Future<Map> activar(String token, String contrasena) async {
final response = await http.post(
Uri.parse('$BASE_URL/auth/activar'),
body: {
'datax': jsonEncode({'token': token, 'contrasena': contrasena}),
},
);
return jsonDecode(response.body);
}
// Uso:
final result = await activar('aB3kLm9xPq2Rw7Tz5Yv', 'miClave123');
print(result['data']['token']); // Token definitivo
async function activar(token, contrasena) {
const formData = new URLSearchParams();
formData.append('datax', JSON.stringify({ token, contrasena }));
const response = await fetch(`${BASE_URL}/auth/activar`, {
method: 'POST',
body: formData,
});
return await response.json();
}
// Uso:
const result = await activar('aB3kLm9xPq2Rw7Tz5Yv', 'miClave123');
localStorage.setItem('token', result.data.token);
activar(token: string, contrasena: string) {
const body = new FormData();
body.append('datax', JSON.stringify({ token, contrasena }));
return this.http.post(`${this.BASE_URL}/auth/activar`, body);
}
// En el componente:
this.authService.activar('aB3kLm9xPq2Rw7Tz5Yv', 'miClave123').subscribe(res => {
this.storage.set('token', res.data.token);
});
Future<Map> olvidarContrasena(String matricula) async {
final response = await http.post(
Uri.parse('$BASE_URL/auth/olvidar'),
body: {
'datax': jsonEncode({'matricula': matricula}),
},
);
return jsonDecode(response.body);
}
async function olvidarContrasena(matricula) {
const formData = new URLSearchParams();
formData.append('datax', JSON.stringify({ matricula }));
const response = await fetch(`${BASE_URL}/auth/olvidar`, {
method: 'POST',
body: formData,
});
return await response.json();
}
olvidarContrasena(matricula: string) {
const body = new FormData();
body.append('datax', JSON.stringify({ matricula }));
return this.http.post(`${this.BASE_URL}/auth/olvidar`, body);
}
Future<Map> login(String matricula, String contrasena) async {
final response = await http.post(
Uri.parse('$BASE_URL/auth/login'),
body: {
'datax': jsonEncode({'matricula': matricula, 'contrasena': contrasena}),
},
);
return jsonDecode(response.body);
}
// Uso:
final result = await login('20240096', 'miClave123');
final token = result['data']['token'];
// Guardar token con shared_preferences
async function login(matricula, contrasena) {
const formData = new URLSearchParams();
formData.append('datax', JSON.stringify({ matricula, contrasena }));
const response = await fetch(`${BASE_URL}/auth/login`, {
method: 'POST',
body: formData,
});
const data = await response.json();
localStorage.setItem('token', data.data.token);
return data;
}
login(matricula: string, contrasena: string) {
const body = new FormData();
body.append('datax', JSON.stringify({ matricula, contrasena }));
return this.http.post(`${this.BASE_URL}/auth/login`, body);
}
// En el componente:
this.authService.login('20240096', 'miClave123').subscribe(res => {
this.storage.set('token', res.data.token);
this.router.navigate(['/home']);
});
Future<Map> getPerfil(String token) async {
final response = await http.get(
Uri.parse('$BASE_URL/perfil'),
headers: {'Authorization': 'Bearer $token'},
);
return jsonDecode(response.body);
}
async function getPerfil(token) {
const response = await fetch(`${BASE_URL}/perfil`, {
headers: { 'Authorization': `Bearer ${token}` },
});
return await response.json();
}
getPerfil() {
const token = this.storage.get('token');
return this.http.get(`${this.BASE_URL}/perfil`, {
headers: { Authorization: `Bearer ${token}` }
});
}
Future<Map> getVehiculos(String token, {String? marca, int page = 1}) async {
final params = {'page': '$page'};
if (marca != null) params['marca'] = marca;
final uri = Uri.parse('$BASE_URL/vehiculos').replace(queryParameters: params);
final response = await http.get(uri, headers: {'Authorization': 'Bearer $token'});
return jsonDecode(response.body);
}
async function getVehiculos(token, { marca, page = 1 } = {}) {
const params = new URLSearchParams({ page });
if (marca) params.append('marca', marca);
const response = await fetch(`${BASE_URL}/vehiculos?${params}`, {
headers: { 'Authorization': `Bearer ${token}` },
});
return await response.json();
}
getVehiculos(marca?: string, page = 1) {
const token = this.storage.get('token');
let params: any = { page };
if (marca) params.marca = marca;
return this.http.get(`${this.BASE_URL}/vehiculos`, {
headers: { Authorization: `Bearer ${token}` },
params
});
}
import 'package:http/http.dart' as http;
Future<Map> crearVehiculo(String token, Map datos, {File? foto}) async {
var request = http.MultipartRequest('POST', Uri.parse('$BASE_URL/vehiculos'));
request.headers['Authorization'] = 'Bearer $token';
request.fields['datax'] = jsonEncode(datos);
if (foto != null) {
request.files.add(await http.MultipartFile.fromPath('foto', foto.path));
}
final response = await request.send();
final body = await response.stream.bytesToString();
return jsonDecode(body);
}
// Uso:
final result = await crearVehiculo(token, {
'placa': 'A123456',
'chasis': '1HGCM82633A004352',
'marca': 'Toyota',
'modelo': 'Corolla',
'anio': 2022,
'cantidadRuedas': 4,
});
async function crearVehiculo(token, datos, foto = null) {
const formData = new FormData();
formData.append('datax', JSON.stringify(datos));
if (foto) formData.append('foto', foto); // File object
const response = await fetch(`${BASE_URL}/vehiculos`, {
method: 'POST',
headers: { 'Authorization': `Bearer ${token}` },
body: formData,
});
return await response.json();
}
// Uso:
const result = await crearVehiculo(token, {
placa: 'A123456', chasis: '1HGCM82633A004352',
marca: 'Toyota', modelo: 'Corolla', anio: 2022, cantidadRuedas: 4
});
crearVehiculo(datos: any, foto?: File) {
const token = this.storage.get('token');
const formData = new FormData();
formData.append('datax', JSON.stringify(datos));
if (foto) formData.append('foto', foto);
return this.http.post(`${this.BASE_URL}/vehiculos`, formData, {
headers: { Authorization: `Bearer ${token}` }
});
}
Future<Map> getVehiculoDetalle(String token, int id) async {
final response = await http.get(
Uri.parse('$BASE_URL/vehiculos/detalle?id=$id'),
headers: {'Authorization': 'Bearer $token'},
);
return jsonDecode(response.body);
}
async function getVehiculoDetalle(token, id) {
const response = await fetch(`${BASE_URL}/vehiculos/detalle?id=${id}`, {
headers: { 'Authorization': `Bearer ${token}` },
});
return await response.json();
}
getVehiculoDetalle(id: number) {
const token = this.storage.get('token');
return this.http.get(`${this.BASE_URL}/vehiculos/detalle`, {
headers: { Authorization: `Bearer ${token}` },
params: { id }
});
}
Future<Map> getMantenimientos(String token, int vehiculoId) async {
final response = await http.get(
Uri.parse('$BASE_URL/mantenimientos?vehiculo_id=$vehiculoId'),
headers: {'Authorization': 'Bearer $token'},
);
return jsonDecode(response.body);
}
async function getMantenimientos(token, vehiculoId) {
const response = await fetch(`${BASE_URL}/mantenimientos?vehiculo_id=${vehiculoId}`, {
headers: { 'Authorization': `Bearer ${token}` },
});
return await response.json();
}
getMantenimientos(vehiculoId: number) {
const token = this.storage.get('token');
return this.http.get(`${this.BASE_URL}/mantenimientos`, {
headers: { Authorization: `Bearer ${token}` },
params: { vehiculo_id: vehiculoId }
});
}
Future<Map> crearMantenimiento(String token, Map datos, {List<File>? fotos}) async {
var request = http.MultipartRequest('POST', Uri.parse('$BASE_URL/mantenimientos'));
request.headers['Authorization'] = 'Bearer $token';
request.fields['datax'] = jsonEncode(datos);
if (fotos != null) {
for (var foto in fotos) {
request.files.add(await http.MultipartFile.fromPath('fotos[]', foto.path));
}
}
final response = await request.send();
final body = await response.stream.bytesToString();
return jsonDecode(body);
}
// Uso:
final result = await crearMantenimiento(token, {
'vehiculo_id': 1,
'tipo': 'Cambio de aceite',
'costo': 2500,
'piezas': 'Filtro de aceite',
});
async function crearMantenimiento(token, datos, fotos = []) {
const formData = new FormData();
formData.append('datax', JSON.stringify(datos));
fotos.forEach(foto => formData.append('fotos[]', foto));
const response = await fetch(`${BASE_URL}/mantenimientos`, {
method: 'POST',
headers: { 'Authorization': `Bearer ${token}` },
body: formData,
});
return await response.json();
}
crearMantenimiento(datos: any, fotos: File[] = []) {
const token = this.storage.get('token');
const formData = new FormData();
formData.append('datax', JSON.stringify(datos));
fotos.forEach(f => formData.append('fotos[]', f));
return this.http.post(`${this.BASE_URL}/mantenimientos`, formData, {
headers: { Authorization: `Bearer ${token}` }
});
}
// LISTAR
Future<Map> getCombustibles(String token, int vehiculoId) async {
final response = await http.get(
Uri.parse('$BASE_URL/combustibles?vehiculo_id=$vehiculoId'),
headers: {'Authorization': 'Bearer $token'},
);
return jsonDecode(response.body);
}
// REGISTRAR
Future<Map> crearCombustible(String token, Map datos) async {
final response = await http.post(
Uri.parse('$BASE_URL/combustibles'),
headers: {'Authorization': 'Bearer $token'},
body: {'datax': jsonEncode(datos)},
);
return jsonDecode(response.body);
}
// Uso:
await crearCombustible(token, {
'vehiculo_id': 1, 'tipo': 'combustible',
'cantidad': 15.5, 'unidad': 'galones', 'monto': 3800,
});
// LISTAR
async function getCombustibles(token, vehiculoId) {
const response = await fetch(`${BASE_URL}/combustibles?vehiculo_id=${vehiculoId}`, {
headers: { 'Authorization': `Bearer ${token}` },
});
return await response.json();
}
// REGISTRAR
async function crearCombustible(token, datos) {
const formData = new URLSearchParams();
formData.append('datax', JSON.stringify(datos));
const response = await fetch(`${BASE_URL}/combustibles`, {
method: 'POST',
headers: { 'Authorization': `Bearer ${token}` },
body: formData,
});
return await response.json();
}
// LISTAR
getCombustibles(vehiculoId: number) {
const token = this.storage.get('token');
return this.http.get(`${this.BASE_URL}/combustibles`, {
headers: { Authorization: `Bearer ${token}` },
params: { vehiculo_id: vehiculoId }
});
}
// REGISTRAR
crearCombustible(datos: any) {
const token = this.storage.get('token');
const body = new FormData();
body.append('datax', JSON.stringify(datos));
return this.http.post(`${this.BASE_URL}/combustibles`, body, {
headers: { Authorization: `Bearer ${token}` }
});
}
Future<Map> getGomas(String token, int vehiculoId) async {
final response = await http.get(
Uri.parse('$BASE_URL/gomas?vehiculo_id=$vehiculoId'),
headers: {'Authorization': 'Bearer $token'},
);
return jsonDecode(response.body);
}
async function getGomas(token, vehiculoId) {
const response = await fetch(`${BASE_URL}/gomas?vehiculo_id=${vehiculoId}`, {
headers: { 'Authorization': `Bearer ${token}` },
});
return await response.json();
}
getGomas(vehiculoId: number) {
const token = this.storage.get('token');
return this.http.get(`${this.BASE_URL}/gomas`, {
headers: { Authorization: `Bearer ${token}` },
params: { vehiculo_id: vehiculoId }
});
}
// ACTUALIZAR ESTADO
Future<Map> actualizarGoma(String token, int gomaId, String estado) async {
final response = await http.post(
Uri.parse('$BASE_URL/gomas/actualizar'),
headers: {'Authorization': 'Bearer $token'},
body: {'datax': jsonEncode({'goma_id': gomaId, 'estado': estado})},
);
return jsonDecode(response.body);
}
// REGISTRAR PINCHAZO
Future<Map> registrarPinchazo(String token, int gomaId, String descripcion) async {
final response = await http.post(
Uri.parse('$BASE_URL/gomas/pinchazos'),
headers: {'Authorization': 'Bearer $token'},
body: {'datax': jsonEncode({'goma_id': gomaId, 'descripcion': descripcion})},
);
return jsonDecode(response.body);
}
// ACTUALIZAR ESTADO
async function actualizarGoma(token, gomaId, estado) {
const formData = new URLSearchParams();
formData.append('datax', JSON.stringify({ goma_id: gomaId, estado }));
const response = await fetch(`${BASE_URL}/gomas/actualizar`, {
method: 'POST',
headers: { 'Authorization': `Bearer ${token}` },
body: formData,
});
return await response.json();
}
// REGISTRAR PINCHAZO
async function registrarPinchazo(token, gomaId, descripcion) {
const formData = new URLSearchParams();
formData.append('datax', JSON.stringify({ goma_id: gomaId, descripcion }));
const response = await fetch(`${BASE_URL}/gomas/pinchazos`, {
method: 'POST',
headers: { 'Authorization': `Bearer ${token}` },
body: formData,
});
return await response.json();
}
// ACTUALIZAR ESTADO
actualizarGoma(gomaId: number, estado: string) {
const token = this.storage.get('token');
const body = new FormData();
body.append('datax', JSON.stringify({ goma_id: gomaId, estado }));
return this.http.post(`${this.BASE_URL}/gomas/actualizar`, body, {
headers: { Authorization: `Bearer ${token}` }
});
}
// REGISTRAR PINCHAZO
registrarPinchazo(gomaId: number, descripcion: string) {
const token = this.storage.get('token');
const body = new FormData();
body.append('datax', JSON.stringify({ goma_id: gomaId, descripcion }));
return this.http.post(`${this.BASE_URL}/gomas/pinchazos`, body, {
headers: { Authorization: `Bearer ${token}` }
});
}
// CATEGORIAS
Future<Map> getCategorias(String token) async {
final response = await http.get(
Uri.parse('$BASE_URL/gastos/categorias'),
headers: {'Authorization': 'Bearer $token'},
);
return jsonDecode(response.body);
}
// LISTAR GASTOS
Future<Map> getGastos(String token, int vehiculoId) async {
final response = await http.get(
Uri.parse('$BASE_URL/gastos?vehiculo_id=$vehiculoId'),
headers: {'Authorization': 'Bearer $token'},
);
return jsonDecode(response.body);
}
// REGISTRAR GASTO
Future<Map> crearGasto(String token, Map datos) async {
final response = await http.post(
Uri.parse('$BASE_URL/gastos'),
headers: {'Authorization': 'Bearer $token'},
body: {'datax': jsonEncode(datos)},
);
return jsonDecode(response.body);
}
// CATEGORIAS
async function getCategorias(token) {
const response = await fetch(`${BASE_URL}/gastos/categorias`, {
headers: { 'Authorization': `Bearer ${token}` },
});
return await response.json();
}
// LISTAR GASTOS
async function getGastos(token, vehiculoId) {
const response = await fetch(`${BASE_URL}/gastos?vehiculo_id=${vehiculoId}`, {
headers: { 'Authorization': `Bearer ${token}` },
});
return await response.json();
}
// REGISTRAR GASTO
async function crearGasto(token, datos) {
const formData = new URLSearchParams();
formData.append('datax', JSON.stringify(datos));
const response = await fetch(`${BASE_URL}/gastos`, {
method: 'POST',
headers: { 'Authorization': `Bearer ${token}` },
body: formData,
});
return await response.json();
}
// CATEGORIAS
getCategorias() {
const token = this.storage.get('token');
return this.http.get(`${this.BASE_URL}/gastos/categorias`, {
headers: { Authorization: `Bearer ${token}` }
});
}
// LISTAR GASTOS
getGastos(vehiculoId: number) {
const token = this.storage.get('token');
return this.http.get(`${this.BASE_URL}/gastos`, {
headers: { Authorization: `Bearer ${token}` },
params: { vehiculo_id: vehiculoId }
});
}
// REGISTRAR GASTO
crearGasto(datos: any) {
const token = this.storage.get('token');
const body = new FormData();
body.append('datax', JSON.stringify(datos));
return this.http.post(`${this.BASE_URL}/gastos`, body, {
headers: { Authorization: `Bearer ${token}` }
});
}
// LISTAR
Future<Map> getIngresos(String token, int vehiculoId) async {
final response = await http.get(
Uri.parse('$BASE_URL/ingresos?vehiculo_id=$vehiculoId'),
headers: {'Authorization': 'Bearer $token'},
);
return jsonDecode(response.body);
}
// REGISTRAR
Future<Map> crearIngreso(String token, Map datos) async {
final response = await http.post(
Uri.parse('$BASE_URL/ingresos'),
headers: {'Authorization': 'Bearer $token'},
body: {'datax': jsonEncode(datos)},
);
return jsonDecode(response.body);
}
// Uso:
await crearIngreso(token, {
'vehiculo_id': 1, 'monto': 25000, 'concepto': 'Transporte semanal',
});
// LISTAR
async function getIngresos(token, vehiculoId) {
const response = await fetch(`${BASE_URL}/ingresos?vehiculo_id=${vehiculoId}`, {
headers: { 'Authorization': `Bearer ${token}` },
});
return await response.json();
}
// REGISTRAR
async function crearIngreso(token, datos) {
const formData = new URLSearchParams();
formData.append('datax', JSON.stringify(datos));
const response = await fetch(`${BASE_URL}/ingresos`, {
method: 'POST',
headers: { 'Authorization': `Bearer ${token}` },
body: formData,
});
return await response.json();
}
// LISTAR
getIngresos(vehiculoId: number) {
const token = this.storage.get('token');
return this.http.get(`${this.BASE_URL}/ingresos`, {
headers: { Authorization: `Bearer ${token}` },
params: { vehiculo_id: vehiculoId }
});
}
// REGISTRAR
crearIngreso(datos: any) {
const token = this.storage.get('token');
const body = new FormData();
body.append('datax', JSON.stringify(datos));
return this.http.post(`${this.BASE_URL}/ingresos`, body, {
headers: { Authorization: `Bearer ${token}` }
});
}
Future<Map> getNoticias(String token, {int page = 1}) async {
final response = await http.get(
Uri.parse('$BASE_URL/noticias?page=$page'),
headers: {'Authorization': 'Bearer $token'},
);
return jsonDecode(response.body);
}
Future<Map> getNoticiaDetalle(String token, int id) async {
final response = await http.get(
Uri.parse('$BASE_URL/noticias/detalle?id=$id'),
headers: {'Authorization': 'Bearer $token'},
);
return jsonDecode(response.body);
}
async function getNoticias(token, page = 1) {
const response = await fetch(`${BASE_URL}/noticias?page=${page}`, {
headers: { 'Authorization': `Bearer ${token}` },
});
return await response.json();
}
async function getNoticiaDetalle(token, id) {
const response = await fetch(`${BASE_URL}/noticias/detalle?id=${id}`, {
headers: { 'Authorization': `Bearer ${token}` },
});
return await response.json();
}
getNoticias(page = 1) {
const token = this.storage.get('token');
return this.http.get(`${this.BASE_URL}/noticias`, {
headers: { Authorization: `Bearer ${token}` },
params: { page }
});
}
getNoticiaDetalle(id: number) {
const token = this.storage.get('token');
return this.http.get(`${this.BASE_URL}/noticias/detalle`, {
headers: { Authorization: `Bearer ${token}` },
params: { id }
});
}
Future<Map> getCatalogo(String token, {String? marca, int? anio}) async {
final params = <String, String>{};
if (marca != null) params['marca'] = marca;
if (anio != null) params['anio'] = '$anio';
final uri = Uri.parse('$BASE_URL/catalogo').replace(queryParameters: params);
final response = await http.get(uri, headers: {'Authorization': 'Bearer $token'});
return jsonDecode(response.body);
}
Future<Map> getCatalogoDetalle(String token, int id) async {
final response = await http.get(
Uri.parse('$BASE_URL/catalogo/detalle?id=$id'),
headers: {'Authorization': 'Bearer $token'},
);
return jsonDecode(response.body);
}
async function getCatalogo(token, { marca, anio } = {}) {
const params = new URLSearchParams();
if (marca) params.append('marca', marca);
if (anio) params.append('anio', anio);
const response = await fetch(`${BASE_URL}/catalogo?${params}`, {
headers: { 'Authorization': `Bearer ${token}` },
});
return await response.json();
}
async function getCatalogoDetalle(token, id) {
const response = await fetch(`${BASE_URL}/catalogo/detalle?id=${id}`, {
headers: { 'Authorization': `Bearer ${token}` },
});
return await response.json();
}
getCatalogo(filtros: any = {}) {
const token = this.storage.get('token');
return this.http.get(`${this.BASE_URL}/catalogo`, {
headers: { Authorization: `Bearer ${token}` },
params: filtros
});
}
getCatalogoDetalle(id: number) {
const token = this.storage.get('token');
return this.http.get(`${this.BASE_URL}/catalogo/detalle`, {
headers: { Authorization: `Bearer ${token}` },
params: { id }
});
}