Skip to content

Commit

Permalink
feat: api 연결
Browse files Browse the repository at this point in the history
  • Loading branch information
brownglasses committed Apr 4, 2024
1 parent b0d3815 commit f7143ae
Show file tree
Hide file tree
Showing 51 changed files with 456 additions and 1,626 deletions.
5 changes: 0 additions & 5 deletions front/lib/app/config/routes.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import 'package:front/features/home.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.dart';
import 'package:front/features/team/presentation/pages/team/team_datail.dart';
import 'package:front/features/team/presentation/pages/team/teams_list.dart';
Expand Down Expand Up @@ -75,10 +74,6 @@ final router = GoRouter(initialLocation: '/', routes: [
name: 'main',
builder: (context, state) => const MainScreen(),
),
GoRoute(
path: 'taskDetail',
name: 'taskDetail',
builder: (context, state) => const TaskDetailScreen()),
ShellRoute(
builder: (context, state, child) => ScaffoldWithMyInfo(child: child),
routes: [
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@ final class TaskRemoteDataSourceImpl implements TaskRemoteDataSource {
}

@override
Future<ApiResponse<TaskModel>> updateTask(int taskId, UpdateTask updateTask) {
return _taskAPI.updateTask(taskId: taskId, updateTask: updateTask);
Future<ApiResponse<TaskModel>> updateTask(UpdateTask updateTask) {
return _taskAPI.updateTask(
taskId: updateTask.taskId, updateTask: updateTask);
}

@override
Expand Down
15 changes: 0 additions & 15 deletions front/lib/features/task/repositories/task_repository.dart

This file was deleted.

75 changes: 0 additions & 75 deletions front/lib/features/task/repositories/task_repository_impl.dart

This file was deleted.

15 changes: 0 additions & 15 deletions front/lib/features/task/usecase/create_task_usecase.dart

This file was deleted.

12 changes: 0 additions & 12 deletions front/lib/features/task/usecase/delete_task_usecase.dart

This file was deleted.

12 changes: 0 additions & 12 deletions front/lib/features/task/usecase/get_task_by_project.dart

This file was deleted.

Empty file.
14 changes: 0 additions & 14 deletions front/lib/features/task/usecase/update_task_state.dart

This file was deleted.

38 changes: 38 additions & 0 deletions front/lib/features/user/data/api/user_api.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import 'package:dio/dio.dart' hide Headers;
import 'package:front/core/utils/api_response.dart';
import 'package:front/features/user/data/models/change_password.dart';
import 'package:front/features/user/data/models/sign_in_request.dart';
import 'package:front/features/user/data/models/sign_in_response.dart';
import 'package:front/features/user/data/models/sign_up_request.dart';
import 'package:front/features/user/data/models/sign_up_response.dart';
import 'package:front/features/user/data/models/user.dart';
import 'package:retrofit/http.dart';

part 'user_api.g.dart';

@RestApi()
abstract class UserAPI {
factory UserAPI(Dio dio, {String baseUrl}) = _UserAPI;

//태스크 생성
@POST('/auth/sign-up')
Future<ApiResponse<SignUpResponse>> signUp({
@Body() required SignUpRequest signUpRequest,
});

//프로젝트에 해당하는 모든 테스크 가져오기
@POST('/auth/sign-in')
Future<ApiResponse<SignInResponse>> signIn({
@Body() required SignInRequest signInRequest,
});

@GET('/user')
@Headers({'accessToken': 'true'})
Future<ApiResponse<UserModel>> getUserInfo();

@PATCH('/user/password')
@Headers({'accessToken': 'true'})
Future<ApiResponse> changePassword({
@Body() required ChangePassword changePassword,
});
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import 'package:front/features/user/data/models/token.dart';

abstract class UserLocalDataSource {
Future<void> saveToken(TokenModel token);
Future<TokenModel> getToken();
Future<void> deleteToken();
Future<bool> tokenCheck();
//Future<UserModel> getUserInfo();
//Future<void> saveUserInfo(UserModel usermodel);

Future<bool> autoSignInCheck();
Future<void> setAutoSignInTrue();
Future<void> setAutoSignInFalse();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:front/features/user/data/data_source/local_data_source/user_local_data_source.dart';
import 'package:front/features/user/data/models/token.dart';
import 'package:shared_preferences/shared_preferences.dart';

class UserLocalDataSourceImpl implements UserLocalDataSource {
UserLocalDataSourceImpl(
{required this.flutterSecureStorage, required this.sharedPreferences});
final FlutterSecureStorage flutterSecureStorage;
final SharedPreferences sharedPreferences;
static const accessTokenKey = 'access_token';
static const refreshTokenKey = 'refresh_token';
static const autoSigninKey = 'auto_Signin';
@override
Future<void> saveToken(TokenModel token) {
return Future.wait([
flutterSecureStorage.write(key: accessTokenKey, value: token.accessToken),
flutterSecureStorage.write(
key: refreshTokenKey, value: token.refreshToken),
]);
}

@override
Future<void> deleteToken() {
return Future.wait([
flutterSecureStorage.delete(key: accessTokenKey),
flutterSecureStorage.delete(key: refreshTokenKey),
]);
}

@override
Future<TokenModel> getToken() {
return Future.wait([
flutterSecureStorage.read(key: accessTokenKey),
flutterSecureStorage.read(key: refreshTokenKey),
]).then((value) => TokenModel(
accessToken: value[0] ?? '',
refreshToken: value[1] ?? '',
));
}

@override
Future<bool> tokenCheck() {
return Future.wait([
flutterSecureStorage.read(key: accessTokenKey),
flutterSecureStorage.read(key: refreshTokenKey),
]).then((value) => value[0] == null && value[1] == null);
}

@override
Future<bool> autoSignInCheck() async {
var isSignin = false;
if (sharedPreferences.getBool(autoSigninKey) == true) {
isSignin = true;
}
return isSignin;
}

@override
Future<void> setAutoSignInFalse() {
return sharedPreferences.setBool(autoSigninKey, false);
}

@override
Future<void> setAutoSignInTrue() async {
await sharedPreferences.setBool(autoSigninKey, true);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import 'package:front/core/utils/api_response.dart';
import 'package:front/features/user/data/models/change_password.dart';
import 'package:front/features/user/data/models/sign_in_request.dart';
import 'package:front/features/user/data/models/sign_in_response.dart';
import 'package:front/features/user/data/models/sign_up_request.dart';
import 'package:front/features/user/data/models/sign_up_response.dart';
import 'package:front/features/user/data/models/user.dart';

abstract class UserRemoteDataSource {
Future<ApiResponse<UserModel>> getUserInfo();
Future<ApiResponse<SignInResponse>> signIn(SignInRequest signInRequest);
Future<ApiResponse<SignUpResponse>> signUp(SignUpRequest signUpRequest);
Future<ApiResponse> changePassword(ChangePassword changePassword);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import 'package:front/core/network_handling/app_dio.dart';
import 'package:front/core/utils/api_response.dart';
import 'package:front/features/user/data/api/user_api.dart';
import 'package:front/features/user/data/data_source/remote_data_source/user_remote_data_source.dart';
import 'package:front/features/user/data/models/change_password.dart';
import 'package:front/features/user/data/models/sign_in_request.dart';
import 'package:front/features/user/data/models/sign_in_response.dart';
import 'package:front/features/user/data/models/sign_up_request.dart';
import 'package:front/features/user/data/models/sign_up_response.dart';
import 'package:front/features/user/data/models/user.dart';

final class UserRemoteDataSourceImpl implements UserRemoteDataSource {
final UserAPI _UserAPI = UserAPI(
AppDio.instance,
baseUrl:
'http://ec2-3-34-95-39.ap-northeast-2.compute.amazonaws.com:8083/v1',
);

@override
Future<ApiResponse> changePassword(ChangePassword changePassword) {
return _UserAPI.changePassword(changePassword: changePassword);
}

@override
Future<ApiResponse<UserModel>> getUserInfo() {
return _UserAPI.getUserInfo();
}

@override
Future<ApiResponse<SignInResponse>> signIn(SignInRequest signInRequest) {
return _UserAPI.signIn(signInRequest: signInRequest);
}

@override
Future<ApiResponse<SignUpResponse>> signUp(SignUpRequest signUpRequest) {
return _UserAPI.signUp(signUpRequest: signUpRequest);
}
}
Loading

0 comments on commit f7143ae

Please sign in to comment.