// Automatic FlutterFlow imports import '/backend/schema/structs/index.dart'; import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_util.dart'; import 'index.dart'; // Imports other custom actions import '/flutter_flow/custom_functions.dart'; // Imports custom functions import 'package:flutter/material.dart'; // Begin custom action code // DO NOT REMOVE OR MODIFY THE CODE ABOVE! import 'dart:async'; import 'dart:convert'; import 'package:http/http.dart' as http; Future evenementCreate( String sessionName, String sessionId, String token, String horecagelegenheidNid, String titel, String datumStart, String? datumEind, String? omschrijving, String? entreeTid, String? entreePrijs, String? toelichtingEntree, String? ticketsUrl, String? websiteUrl, List? categorieTids, String? logoFid, List? fotosFids, ) async { final horecaNidInt = int.tryParse(horecagelegenheidNid.trim()); if (horecaNidInt == null) { return {'success': false, 'error': 'Kies eerst een horecagelegenheid'}; } if (titel.trim().isEmpty) { return {'success': false, 'error': 'Titel is verplicht'}; } if (datumStart.trim().isEmpty) { return {'success': false, 'error': 'Datum is verplicht'}; } final body = { 'horecagelegenheid_nid': horecaNidInt, 'titel': titel.trim(), 'datum_start': datumStart.trim(), }; if ((datumEind ?? '').trim().isNotEmpty) { body['datum_eind'] = datumEind!.trim(); } if ((omschrijving ?? '').trim().isNotEmpty) { body['omschrijving'] = omschrijving!.trim(); } if ((entreeTid ?? '').trim().isNotEmpty) { final tid = int.tryParse(entreeTid!.trim()); if (tid != null) body['entree_tid'] = tid; } if ((entreePrijs ?? '').trim().isNotEmpty) { body['entree_prijs'] = entreePrijs!.trim(); } if ((toelichtingEntree ?? '').trim().isNotEmpty) { body['toelichting_entree'] = toelichtingEntree!.trim(); } if ((ticketsUrl ?? '').trim().isNotEmpty) { body['tickets_url'] = ticketsUrl!.trim(); } if ((websiteUrl ?? '').trim().isNotEmpty) { body['website_url'] = websiteUrl!.trim(); } if (categorieTids != null && categorieTids.isNotEmpty) { final tids = categorieTids .map((e) => int.tryParse(e.trim())) .whereType() .toList(); if (tids.isNotEmpty) body['categorie_tids'] = tids; } if ((logoFid ?? '').trim().isNotEmpty) { final fid = int.tryParse(logoFid!.trim()); if (fid != null) body['logo_fid'] = fid; } if (fotosFids != null && fotosFids.isNotEmpty) { final fids = fotosFids.map((e) => int.tryParse(e.trim())).whereType().toList(); if (fids.isNotEmpty) body['fotos_fids'] = fids; } final headers = { 'Accept': 'application/json', 'Content-Type': 'application/json', }; if (sessionName.trim().isNotEmpty && sessionId.trim().isNotEmpty) { headers['Cookie'] = '$sessionName=$sessionId'; } if (token.trim().isNotEmpty) { headers['X-CSRF-Token'] = token; } final base = FFAppState().apiBaseUrl.trim().isEmpty ? 'https://uitgaanskrant.com' : FFAppState().apiBaseUrl.trim(); final url = '$base/en/flutterdrup/evenementen/create.json'; print('========================================'); print('EVENEMENT CREATE'); print('URL : $url'); print('BODY : ${jsonEncode(body)}'); print('========================================'); try { final response = await http .post(Uri.parse(url), headers: headers, body: jsonEncode(body)) .timeout(const Duration(seconds: 30)); print('========================================'); print('STATUS : ${response.statusCode}'); print('BODY'); print(response.body); print('========================================'); dynamic data; try { data = jsonDecode(response.body); } catch (_) { data = response.body; } if (response.statusCode >= 200 && response.statusCode < 300) { return { 'success': true, 'nid': data is Map ? (data['nid']?.toString() ?? '') : '', 'status': data is Map ? (data['status']?.toString() ?? '') : '', }; } if (response.statusCode == 403) { return { 'success': false, 'statusCode': 403, 'error': 'Deze horecagelegenheid is niet van jou', }; } return { 'success': false, 'statusCode': response.statusCode, 'error': data is Map ? ((data['message'] ?? data['error'] ?? data).toString()) : data.toString(), }; } on TimeoutException { return {'success': false, 'error': 'Timeout'}; } catch (e, stack) { print(e); print(stack); return {'success': false, 'error': e.toString()}; } } // Set your action name, define your arguments and return parameter, // and then add the boilerplate code using the `` button on the right!