46 lines
1.2 KiB
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);
|
|
});
|
|
}
|