Skip to content

Commit

Permalink
Merge branch 'main' into 89-button-design-theme
Browse files Browse the repository at this point in the history
  • Loading branch information
brownglasses authored Apr 14, 2024
2 parents 0bc58a2 + c86476d commit 96308f6
Show file tree
Hide file tree
Showing 21 changed files with 324 additions and 248 deletions.
23 changes: 16 additions & 7 deletions front/lib/app/config/routes.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import 'package:front/features/form_example/form_demo2.dart';
import 'package:front/features/home.dart';
import 'package:front/features/project/entities/project.dart';
import 'package:front/features/project/presentaion/screen/project_creation.dart';
import 'package:front/features/project/presentaion/screen/project_detail.dart';
import 'package:front/features/project/presentaion/screen/project_update.dart';
import 'package:front/features/task/presentation/screen/task_detail_page.dart';
import 'package:front/features/team/presentation/pages/team/team_create_view.dart';
import 'package:front/features/team/presentation/pages/team/team_datail_view.dart';
import 'package:front/features/team/presentation/pages/team/teams_list_view.dart';
import 'package:front/features/tmp/notificatoin_token_screen.dart';
import 'package:front/features/user/presentation/component/change_info_list.dart';
import 'package:front/features/user/presentation/screens/email_singin.dart';
import 'package:front/features/user/presentation/screens/login.dart';
Expand Down Expand Up @@ -57,19 +59,22 @@ final router = GoRouter(initialLocation: '/', routes: [
},
),
GoRoute(
path: 'projectDetail',
name: 'projectDetail',
builder: (context, state) => const ProjectDetailScreen(),
path: 'projectDetail/:projectId',
name: 'projectDetail/:projectId',
builder: (context, state) => ProjectDetailScreen(
projectId: int.parse(state.pathParameters['projectId']!)),
),
GoRoute(
path: 'projectCreation',
name: 'projectCreation',
builder: (context, state) => ProjectCreationScreen(),
path: 'projectCreate/:teamId',
name: 'projectCreate/:teamId',
builder: (context, state) => ProjectCreateScreen(
teamId: int.parse(state.pathParameters['teamId']!)),
),
GoRoute(
path: 'projectUpdate',
name: 'projectUpdate',
builder: (context, state) => ProjectUpdateScreen(),
builder: (context, state) =>
ProjectUpdateScreen(project: state.extra! as Project),
),
GoRoute(
path: 'main',
Expand Down Expand Up @@ -100,5 +105,9 @@ final router = GoRouter(initialLocation: '/', routes: [
const NoTransitionPage<void>(child: ChangeInfoListScreen()),
),
]),
GoRoute(
path: 'notificationToken',
name: 'notificationToken',
builder: (context, state) => const NotificationTokenScreen()),
]),
]);
2 changes: 2 additions & 0 deletions front/lib/core/const/const.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@ const refreshTokenKey = 'refresh_token';
/// is authenticated key for secure storage
const IS_AUTHENTICATED_KEY = 'IS_AUTHENTICATED_KEY';
const AUTHENTICATED_USER_EMAIL_KEY = 'AUTHENTICATED_USER_EMAIL_KEY';

const NOTIFICATION_TOKEN = 'NOTIFICATION_TOKEN';
5 changes: 1 addition & 4 deletions front/lib/features/home.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,9 @@ class HomeScreen extends StatelessWidget {

@override
Widget build(BuildContext context) {
var width = MediaQuery.of(context).size.width;
var height = MediaQuery.of(context).size.height;
print('width: $width, height: $height');
return Scaffold(
appBar: AppBar(title: const Text('홈')),
body: Padding(
body: Padding(
padding: const EdgeInsets.all(32.0),
child: Center(
child: Column(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';

import 'package:front/core/utils/exception.dart';
import 'package:front/features/project/data/models/project.dart';
Expand All @@ -8,7 +9,7 @@ abstract class ProjectRemoteDataSource {
Future<List<ProjectModel>> getProjectsByTeamId(int teamId);
Future<ProjectModel> getProjectById(int projectId);
Future<ProjectModel> createProject(ProjectRequestModel project, int teamId);
Future<ProjectModel> updateProjectById(
Future<ProjectRequestModel> updateProjectById(
ProjectRequestModel project, int projectId);
Future<void> deleteProjectById(int projectId);
}
Expand All @@ -20,25 +21,30 @@ class ProjectRemoteDataSourceImpl implements ProjectRemoteDataSource {
@override
Future<List<ProjectModel>> getProjectsByTeamId(int teamId) async {
try {
dio.options.headers = {'accessToken': 'true'};
debugPrint('teamId: $teamId');
var response = await dio.get(
'/v1/projects/$teamId',
'/v1/team/$teamId/projects',
);

if (response.statusCode == 200 && response.data?['resultCode'] == 200) {
debugPrint(response.data['result'].toString());
return response.data['result']
.map<ProjectModel>((data) => ProjectModel.fromJson(data))
.toList();
} else {
throw ServerException();
}
} on DioException {
} on DioException catch (e) {
debugPrint(e.response?.data.toString());
throw ServerException();
}
}

@override
Future<ProjectModel> getProjectById(int projectId) async {
try {
dio.options.headers = {'accessToken': 'true'};
var response = await dio.get('/v1/project/$projectId');

if (response.statusCode == 200 && response.data?['resultCode'] == 200) {
Expand All @@ -55,46 +61,59 @@ class ProjectRemoteDataSourceImpl implements ProjectRemoteDataSource {
Future<ProjectModel> createProject(
ProjectRequestModel project, int teamId) async {
try {
var response =
await dio.put('/v1/project/$teamId', data: project.toJson());
if (response.statusCode == 200 && response.data?['resultCode'] == 201) {
dio.options.headers = {'accessToken': 'true'};
var response = await dio.post(
'/v1/team/$teamId/project',
data: project.toJson(),
options: Options(
headers: {
'accessToken': 'true',
},
),
);
if (response.statusCode == 201 && response.data?['resultCode'] == 201) {
return ProjectModel.fromJson(response.data['result']);
} else {
throw ServerException();
}
} on DioException {
} on DioException catch (e) {
debugPrint(e.response?.data.toString());
throw ServerException();
}
}

@override
Future<void> deleteProjectById(int projectId) async {
try {
dio.options.headers = {'accessToken': 'true'};
var response = await dio.delete('/v1/project/$projectId');

if (response.statusCode == 200 && response.data?['resultCode'] == 200) {
return;
} else {
throw ServerException();
}
} on DioException {
} on DioException catch (e){
debugPrint(e.response?.toString());
throw ServerException();
}
}

@override
Future<ProjectModel> updateProjectById(
Future<ProjectRequestModel> updateProjectById(
ProjectRequestModel project, int projectId) async {
try {
dio.options.headers = {'accessToken': 'true'};
var response =
await dio.patch('/v1/project/$projectId', data: project.toJson());
await dio.patch('/v1/project/$projectId', data: project.toJson(),);

if (response.statusCode == 200 && response.data?['resultCode'] == 204) {
return ProjectModel.fromJson(response.data['result']);
if (response.statusCode == 204 && response.data?['resultCode'] == 204) {
return project;
} else {
throw ServerException();
}
} on DioException {
} on DioException catch (e) {
debugPrint(e.response?.toString());
throw ServerException();
}
}
Expand Down
3 changes: 2 additions & 1 deletion front/lib/features/project/data/data_sources/riverpod.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:dio/dio.dart';
import 'package:front/core/config/providers/dio.dart';

import 'package:front/features/project/data/data_sources/remote_data_source.dart';
import 'package:front/features/project/data/data_sources/temp_data_source.dart';
Expand All @@ -10,7 +11,7 @@ part 'riverpod.g.dart';
ProjectRemoteDataSource projectRemoteDataSource(
ProjectRemoteDataSourceRef ref,
) {
var dio = Dio();
var dio = ref.read(dioProvider);
return ProjectRemoteDataSourceImpl(dio: dio);
}

Expand Down
9 changes: 9 additions & 0 deletions front/lib/features/project/data/models/project_request.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:equatable/equatable.dart';
import 'package:front/features/project/entities/project.dart';

class ProjectRequestModel extends Equatable {
const ProjectRequestModel({
Expand All @@ -15,6 +16,14 @@ class ProjectRequestModel extends Equatable {
);
}

factory ProjectRequestModel.fromEntity(Project project) {
return ProjectRequestModel(
name: project.name,
description: project.description,
managerId: project.managerId,
);
}

Map<String, dynamic> toJson() {
return {
'name': name,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,12 @@ class ProjectRepositoryImpl implements ProjectRepository {

@override
Future<Either<Failure, Project>> updateProjectById(
ProjectRequestModel project, int projectId) async {
Project project, int projectId) async {
try {
var result =
await projectRemoteDataSource.updateProjectById(project, projectId);
projects.addAll({result.projectId: result.toEntity()});
return Right(result.toEntity());
await projectRemoteDataSource.updateProjectById(ProjectRequestModel.fromEntity(project), projectId);
projects.addAll({projectId: project});
return Right(project);
} on ServerException {
return const Left(ServerFailure('An error has occurred'));
} on SocketException {
Expand Down
Loading

0 comments on commit 96308f6

Please sign in to comment.