tuuli_app/lib/utils.dart

46 lines
1.2 KiB
Dart

import 'dart:math';
import 'package:tuuli_api/tuuli_api.dart';
import 'package:tuuli_app/models/user_definition.dart';
Random _random = Random();
String randomHexString(int length) {
StringBuffer sb = StringBuffer();
for (var i = 0; i < length; i++) {
sb.write(_random.nextInt(16).toRadixString(16));
}
return sb.toString();
}
String postgresDateFormat(DateTime dt) {
int yearSign = dt.year.sign;
int absYear = dt.year.abs();
String y = absYear
.toString()
.padLeft((dt.year >= -9999 && dt.year <= 9999) ? 4 : 6, "0");
if (yearSign == -1) {
y = "-$y";
}
String m = dt.month.toString().padLeft(2, "0");
String d = dt.day.toString().padLeft(2, "0");
String h = dt.hour.toString().padLeft(2, "0");
String min = dt.minute.toString().padLeft(2, "0");
String sec = dt.second.toString().padLeft(2, "0");
return "$y-$m-$d $h:$min:$sec";
}
Map<String, dynamic> convertToPayload(Map<String, dynamic> data) {
return data.map((key, value) {
if (value is UserDefinition) {
return MapEntry(key, value.id);
} else if (value is Asset) {
return MapEntry(key, value.id);
} else if (value is DateTime) {
return MapEntry(key, postgresDateFormat(value));
}
return MapEntry(key, value);
});
}