create subspace

This commit is contained in:
hannathkadher
2024-10-31 11:30:35 +04:00
parent 36e5df38ee
commit dcccc4db3a
8 changed files with 123 additions and 74 deletions

View File

@ -61,7 +61,9 @@ class CreateUnitBloc extends Bloc<CreateUnitEvent, CreateUnitState> {
var storage = const FlutterSecureStorage();
var userId = await storage.read(key: UserModel.userUuidKey) ?? '';
Map<String, String> communityBody = {'communityName': event.communityName};
Map<String, String> communityBody = {
'communityName': event.communityName
};
final response = await HomeCreation.createCommunity(communityBody);
if (response['data']['uuid'] != '') {
// final result =
@ -75,15 +77,22 @@ class CreateUnitBloc extends Bloc<CreateUnitEvent, CreateUnitState> {
if (buildingId.isNotEmpty) {
final floorId = await _createFloor(
floorName: event.floorName, buildingId: buildingId, userId: userId);
floorName: event.floorName,
buildingId: buildingId,
userId: userId);
if (floorId.isNotEmpty) {
final unitId =
await _createUnit(unitName: event.unitName, floorId: floorId, userId: userId);
final unitId = await _createUnit(
unitName: event.unitName, floorId: floorId, userId: userId);
if (unitId.isNotEmpty && rooms.isNotEmpty) {
rooms.forEach((room) async {
await _createNewRoom(roomName: room, unitId: unitId, userId: userId);
await _createNewRoom(
roomName: room,
unitId: unitId,
userId: userId,
communityId: response['data']['uuid'],
);
});
}
}
@ -99,7 +108,8 @@ class CreateUnitBloc extends Bloc<CreateUnitEvent, CreateUnitState> {
}
}
Future<bool> _assignToCommunity({required String communityId, required String userId}) async {
Future<bool> _assignToCommunity(
{required String communityId, required String userId}) async {
try {
Map<String, String> body = {
'communityUuid': communityId,
@ -114,9 +124,14 @@ Future<bool> _assignToCommunity({required String communityId, required String us
}
Future<String> _createBuilding(
{required String buildingName, required String communityId, required String userId}) async {
{required String buildingName,
required String communityId,
required String userId}) async {
try {
Map<String, String> body = {'buildingName': buildingName, 'communityUuid': communityId};
Map<String, String> body = {
'buildingName': buildingName,
'communityUuid': communityId
};
final response = await HomeCreation.createBuilding(body);
// if (response['data']['uuid'] != '') {
// final result = await _assignToBuilding(buildingId: response['data']['uuid'], userId: userId);
@ -130,7 +145,8 @@ Future<String> _createBuilding(
}
}
Future<bool> _assignToBuilding({required String buildingId, required String userId}) async {
Future<bool> _assignToBuilding(
{required String buildingId, required String userId}) async {
try {
Map<String, String> body = {
'buildingUuid': buildingId,
@ -145,9 +161,14 @@ Future<bool> _assignToBuilding({required String buildingId, required String user
}
Future<String> _createFloor(
{required String floorName, required String buildingId, required String userId}) async {
{required String floorName,
required String buildingId,
required String userId}) async {
try {
Map<String, String> body = {'floorName': floorName, 'buildingUuid': buildingId};
Map<String, String> body = {
'floorName': floorName,
'buildingUuid': buildingId
};
final response = await HomeCreation.createFloor(body);
// if (response['data']['uuid'] != '') {
// final result = await _assignToFloor(buildingId: response['data']['uuid'], userId: userId);
@ -161,7 +182,8 @@ Future<String> _createFloor(
}
}
Future<bool> _assignToFloor({required String buildingId, required String userId}) async {
Future<bool> _assignToFloor(
{required String buildingId, required String userId}) async {
try {
Map<String, String> body = {
'floorUuid': buildingId,
@ -176,12 +198,15 @@ Future<bool> _assignToFloor({required String buildingId, required String userId}
}
Future<String> _createUnit(
{required String unitName, required String floorId, required String userId}) async {
{required String unitName,
required String floorId,
required String userId}) async {
try {
Map<String, String> body = {'unitName': unitName, 'floorUuid': floorId};
final response = await HomeCreation.createUnit(body);
if (response['data']['uuid'] != '') {
final result = await _assignToUnit(unitId: response['data']['uuid'], userId: userId);
final result =
await _assignToUnit(unitId: response['data']['uuid'], userId: userId);
return result ? response['data']['uuid'] : '';
} else {
@ -192,7 +217,8 @@ Future<String> _createUnit(
}
}
Future<bool> _assignToUnit({required String unitId, required String userId}) async {
Future<bool> _assignToUnit(
{required String unitId, required String userId}) async {
try {
Map<String, String> body = {
'unitUuid': unitId,
@ -207,10 +233,14 @@ Future<bool> _assignToUnit({required String unitId, required String userId}) asy
}
Future<String> _createNewRoom(
{required String roomName, required String unitId, required String userId}) async {
{required String roomName,
required String unitId,
required String userId,
required String communityId}) async {
try {
Map<String, String> body = {'roomName': roomName, 'unitUuid': unitId};
final response = await HomeCreation.createRoom(body);
Map<String, String> body = {'subspaceName': roomName};
final response = await HomeCreation.createRoom(
communityId: communityId, spaceId: unitId, body: body);
// if (response['data']['uuid'] != '') {
// final result = await _assignToRoom(roomId: response['data']['uuid'], userId: userId);
@ -223,7 +253,8 @@ Future<String> _createNewRoom(
}
}
Future<bool> _assignToRoom({required String roomId, required String userId}) async {
Future<bool> _assignToRoom(
{required String roomId, required String userId}) async {
try {
Map<String, String> body = {
'roomUuid': roomId,

View File

@ -107,10 +107,13 @@ class ManageUnitBloc extends Bloc<ManageUnitEvent, ManageUnitState> {
}
_addNewRoom(AddNewRoom event, Emitter<ManageUnitState> emit) async {
Map<String, String> body = {'roomName': event.roomName};
Map<String, String> body = {'subspaceName': event.roomName};
try {
emit(LoadingState());
final response = await HomeCreation.createRoom(body);
final response = await HomeCreation.createRoom(
communityId: event.unit.community.uuid,
spaceId: event.unit.id,
body: body);
if (response['data']['uuid'] != '') {
final roomsList = await SpacesAPI.getSubSpaceBySpaceId(
event.unit.community.uuid, event.unit.id);

View File

@ -109,7 +109,7 @@ class RoomsView extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.start,
children: [
BodyMedium(
text: 'Add Space',
text: 'Add Room',
fontColor: ColorsManager.primaryColor,
),
],