mirror of
https://github.com/inventree/inventree-app.git
synced 2025-04-28 05:26:47 +00:00
Split 'part' model into new file
This commit is contained in:
parent
25a16b5a28
commit
3c541a9656
@ -13,35 +13,35 @@ import 'package:http/http.dart' as http;
|
||||
class InvenTreeObject {
|
||||
|
||||
// Override the endpoint URL for each subclass
|
||||
String _URL = "";
|
||||
String URL = "";
|
||||
|
||||
// JSON data which defines this object
|
||||
Map<String, dynamic> _data = {};
|
||||
Map<String, dynamic> jsondata = {};
|
||||
|
||||
// Accessor for the API
|
||||
var api = InvenTreeAPI();
|
||||
|
||||
// Default empty object constructor
|
||||
InvenTreeObject() {
|
||||
_data.clear();
|
||||
jsondata.clear();
|
||||
}
|
||||
|
||||
// Construct an InvenTreeObject from a JSON data object
|
||||
InvenTreeObject.fromJson(Map<String, dynamic> json) {
|
||||
|
||||
// Store the json object
|
||||
_data = json;
|
||||
jsondata = json;
|
||||
|
||||
}
|
||||
|
||||
int get pk => _data['pk'] ?? -1;
|
||||
int get pk => jsondata['pk'] ?? -1;
|
||||
|
||||
// Some common accessors
|
||||
String get name => _data['name'] ?? '';
|
||||
String get name => jsondata['name'] ?? '';
|
||||
|
||||
String get description => _data['description'] ?? '';
|
||||
String get description => jsondata['description'] ?? '';
|
||||
|
||||
int get parentId => _data['parent'] ?? -1;
|
||||
int get parentId => jsondata['parent'] ?? -1;
|
||||
|
||||
// Create a new object from JSON data (not a constructor!)
|
||||
InvenTreeObject _createFromJson(Map<String, dynamic> json) {
|
||||
@ -52,7 +52,7 @@ class InvenTreeObject {
|
||||
return obj;
|
||||
}
|
||||
|
||||
String get url{ return path.join(_URL, pk.toString()); }
|
||||
String get url{ return path.join(URL, pk.toString()); }
|
||||
|
||||
// Return list of objects from the database, with optional filters
|
||||
Future<List<InvenTreeObject>> list({Map<String, String> filters}) async {
|
||||
@ -61,12 +61,12 @@ class InvenTreeObject {
|
||||
filters = {};
|
||||
}
|
||||
|
||||
print("Listing endpoint: " + _URL);
|
||||
print("Listing endpoint: " + URL);
|
||||
|
||||
// TODO - Add "timeout"
|
||||
// TODO - Add error catching
|
||||
|
||||
var response = await InvenTreeAPI().get(_URL, params:filters);
|
||||
var response = await InvenTreeAPI().get(URL, params:filters);
|
||||
|
||||
// A list of "InvenTreeObject" items
|
||||
List<InvenTreeObject> results = new List<InvenTreeObject>();
|
||||
@ -78,6 +78,10 @@ class InvenTreeObject {
|
||||
|
||||
final data = json.decode(response.body);
|
||||
|
||||
// TODO - handle possible error cases:
|
||||
// - No data receieved
|
||||
// - Data is not a list of maps
|
||||
|
||||
for (var d in data) {
|
||||
|
||||
// Create a new object (of the current class type
|
||||
@ -103,50 +107,3 @@ class InvenTreeObject {
|
||||
}
|
||||
|
||||
|
||||
class InvenTreePartCategory extends InvenTreeObject {
|
||||
@override
|
||||
String _URL = "part/category/";
|
||||
|
||||
String get pathstring => _data['pathstring'] ?? '';
|
||||
|
||||
InvenTreePartCategory() : super();
|
||||
|
||||
InvenTreePartCategory.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
|
||||
|
||||
}
|
||||
|
||||
@override
|
||||
InvenTreeObject _createFromJson(Map<String, dynamic> json) {
|
||||
var cat = InvenTreePartCategory.fromJson(json);
|
||||
|
||||
// TODO ?
|
||||
|
||||
return cat;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class InvenTreePart extends InvenTreeObject {
|
||||
|
||||
@override
|
||||
String _URL = "part/";
|
||||
|
||||
int get categoryId => _data['category'] as int ?? -1;
|
||||
|
||||
String get categoryName => _data['category__name'] ?? '';
|
||||
|
||||
InvenTreePart() : super();
|
||||
|
||||
InvenTreePart.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
|
||||
// TODO
|
||||
}
|
||||
|
||||
@override
|
||||
InvenTreeObject _createFromJson(Map<String, dynamic> json) {
|
||||
|
||||
var part = InvenTreePart.fromJson(json);
|
||||
|
||||
return part;
|
||||
|
||||
}
|
||||
}
|
55
lib/inventree/part.dart
Normal file
55
lib/inventree/part.dart
Normal file
@ -0,0 +1,55 @@
|
||||
import 'package:InvenTree/api.dart';
|
||||
|
||||
import 'model.dart';
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:path/path.dart' as path;
|
||||
import 'package:http/http.dart' as http;
|
||||
|
||||
class InvenTreePartCategory extends InvenTreeObject {
|
||||
@override
|
||||
String URL = "part/category/";
|
||||
|
||||
String get pathstring => jsondata['pathstring'] ?? '';
|
||||
|
||||
InvenTreePartCategory() : super();
|
||||
|
||||
InvenTreePartCategory.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
|
||||
|
||||
}
|
||||
|
||||
@override
|
||||
InvenTreeObject _createFromJson(Map<String, dynamic> json) {
|
||||
var cat = InvenTreePartCategory.fromJson(json);
|
||||
|
||||
// TODO ?
|
||||
|
||||
return cat;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class InvenTreePart extends InvenTreeObject {
|
||||
|
||||
@override
|
||||
String URL = "part/";
|
||||
|
||||
int get categoryId => jsondata['category'] as int ?? -1;
|
||||
|
||||
String get categoryName => jsondata['category__name'] ?? '';
|
||||
|
||||
InvenTreePart() : super();
|
||||
|
||||
InvenTreePart.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
|
||||
// TODO
|
||||
}
|
||||
|
||||
@override
|
||||
InvenTreeObject _createFromJson(Map<String, dynamic> json) {
|
||||
|
||||
var part = InvenTreePart.fromJson(json);
|
||||
|
||||
return part;
|
||||
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user