This commit is contained in:
mr
2025-02-17 09:35:56 +01:00
parent 313ef43e9c
commit 3d6b4bf3b3
7 changed files with 137 additions and 14 deletions

View File

@@ -147,6 +147,34 @@ class Param extends SerializerDeserializer<Param> {
}
}
class Credential extends SerializerDeserializer<Credential> {
String? login;
String? password;
Credential({
this.login,
this.password,
});
@override
Credential deserialize(json) {
try { json = json as Map<String, dynamic>;
} catch (e) { return Credential(); }
return Credential(
login: json.containsKey("login") ? json["login"] : null,
password: json.containsKey("password") ? json["password"] : null,
);
}
@override
Map<String, dynamic> serialize() {
return {
"login": login,
"password": password,
};
}
}
abstract class AbstractItem<X extends AbstractPricing, Y extends AbstractPartnerShip<X>, S extends AbstractInstance<X,Y>, T extends FlowData> extends FlowData implements SerializerDeserializer<T>, Infos {
String? id;
String? name;
@@ -303,6 +331,8 @@ abstract class AbstractInstance<X extends AbstractPricing, S extends AbstractPar
List<Param> env = [];
List<Param> inputs = [];
List<Param> outputs = [];
Credential? credential;
bool isEnv(String key) {
for (var e in env) {
@@ -331,6 +361,7 @@ abstract class AbstractInstance<X extends AbstractPricing, S extends AbstractPar
this.inputs = json.containsKey("inputs") ? fromListJson(json["inputs"], Param()) : [];
this.outputs = json.containsKey("outputs") ? fromListJson(json["outputs"], Param()) : [];
this.location = json.containsKey("location") ? Location().deserialize(json["location"]) : null;
this.credential = json.containsKey("credential") ? Credential().deserialize(json["credential"]) : null;
this.partnerships = json.containsKey("partnerships") ? fromListJson(json["partnerships"], ex) : [];
}
@@ -343,6 +374,7 @@ abstract class AbstractInstance<X extends AbstractPricing, S extends AbstractPar
"env": toListJson(env),
"inputs": toListJson(inputs),
"outputs": toListJson(outputs),
"credential": credential?.serialize(), // TODO CREDENTIAL FORM
"partnerships": partnerships.map((e) => e.serialize()).toList(),
};
}