Add models and sdk services example

This commit is contained in:
2022-10-28 10:10:46 +07:00
parent 82de95b4b7
commit d0f3debf2e
18 changed files with 598 additions and 85 deletions

View File

@@ -1,7 +0,0 @@
import 'package:sample_dart_dsdk/sdk/models/CategoryModel.dart';
class CategoryService {
List<Category> getAll() {
return List.empty();
}
}

View File

@@ -1,15 +0,0 @@
import 'package:sample_dart_dsdk/sdk/models/ProductModel.dart';
class ProductService {
List<Product> getAll() {
return List.empty();
}
Product getOne() {
return Product.fromJson(null);
}
Product create() {
return Product.fromJson(null);
}
}

View File

@@ -0,0 +1,11 @@
abstract class BaseService<T, ID> {
Future<List<T>> findAll();
Future<T> findById(ID id);
Future<T> create(T entity);
Future<T> update(T entity);
Future<void> delete(ID id);
}

View File

@@ -0,0 +1,39 @@
import 'package:sample_sdk/sdk/models/category.dart';
import 'package:sample_sdk/sdk/services/base.dart';
class CategoryService extends BaseService<Category, int> {
final List<Category> _categories = [
Category(id: 1, name: 'Category 1'),
Category(id: 2, name: 'Category 2'),
Category(id: 3, name: 'Category 3'),
];
@override
Future<Category> create(Category entity) {
_categories.add(entity);
return Future.value(entity);
}
@override
Future<void> delete(int id) {
_categories.removeWhere((element) => element.id == id);
return Future.value();
}
@override
Future<List<Category>> findAll() {
return Future.value(_categories);
}
@override
Future<Category> findById(int id) {
return Future.value(_categories.firstWhere((element) => element.id == id));
}
@override
Future<Category> update(Category entity) {
final index = _categories.indexWhere((element) => element.id == entity.id);
_categories[index] = entity;
return Future.value(entity);
}
}

View File

@@ -0,0 +1,64 @@
import 'package:sample_sdk/sdk/models/category.dart';
import 'package:sample_sdk/sdk/models/product.dart';
import 'package:sample_sdk/sdk/services/base.dart';
class ProductService extends BaseService<Product, int> {
final List<Product> _products = [
Product(
id: 1,
name: 'Product 1',
price: 100.0,
category: Category(
id: 1,
name: 'Category 1',
),
),
Product(
id: 2,
name: 'Product 2',
price: 200.0,
category: Category(
id: 2,
name: 'Category 2',
),
),
Product(
id: 3,
name: 'Product 3',
price: 300.0,
category: Category(
id: 3,
name: 'Category 3',
),
),
];
@override
Future<Product> create(Product entity) {
_products.add(entity);
return Future.value(entity);
}
@override
Future<void> delete(int id) {
_products.removeWhere((element) => element.id == id);
return Future.value();
}
@override
Future<List<Product>> findAll() {
return Future.value(_products);
}
@override
Future<Product> findById(int id) {
return Future.value(_products.firstWhere((element) => element.id == id));
}
@override
Future<Product> update(Product entity) {
final index = _products.indexWhere((element) => element.id == entity.id);
_products[index] = entity;
return Future.value(entity);
}
}