Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design Firebase Controller(Client) Interface #22

Open
hmc0105 opened this issue Oct 4, 2022 · 0 comments
Open

Design Firebase Controller(Client) Interface #22

hmc0105 opened this issue Oct 4, 2022 · 0 comments
Labels
design design related issue firebase firebase related issue

Comments

@hmc0105
Copy link
Collaborator

hmc0105 commented Oct 4, 2022

Introduction

Front-End에서 Firebase 데이터 구조에 편하게 접근하도록 만든 Controller입니다.
페이지 단위로 구성되어 있으며 /lib/firebase/controller에서 이용할 수 있습니다.

Details

  1. 회원가입 페이지 (controller/auth/sign_up_ctrl.dart)
    Static Method이기에 그냥 함수를 직접 이용하면 됩니다.
  • Future<List<String>> getFridgeList(String unitID) async
  • Future<String> signUp(String email, String password, String name, String unitID, String fridgeID, String userType) async
  1. 로그인 페이지 (controller/auth/sign_in_ctrl.dart)
    Static Method이기에 그냥 함수를 직접 이용하면 됩니다.
  • Future<String> signIn(String email, String password) async
  1. 비밀번호 초기화 페이지 (controller/auth/reset_pw_ctrl.dart)
    Static Method이기에 그냥 함수를 직접 이용하면 됩니다.
  • Future<void> resetPW(String email) async
  1. 메인 페이지 (유저정보 받는 페이지) (controller/main/main_ctrl.dart)
    Static Method이기에 그냥 함수를 직접 이용하면 됩니다.
    import "/firebase/repository/user_repository.dart를 해야합니다. (변경예정)
  • Future<User> getLogInUser() async
  1. 유저(용사) 페이지 (controller/main/user_ctrl.dart)
    Class Method를 이용하기에, 아래와 같은 초기화가 필요합니다.
    var userCtrl = UserController(); userCtrl.init(String? reqFridgeID, String? reqUid)
    간부일 경우 보고싶은 유저의 정보를 reqFridgeID. reqUid에,
    분대장일 경우 보고싶은 유저의 정보를 reqUid에,
    용사일 경우 모두 null을 넣으면 됩니다.
    import "/firebase/controller/main/general/dto.dart를 해야합니다.
  • UserBoxDTO getUserBox()
  • Future<List<ItemDTO>> getWarningItemList() async
  • Future<List<ItemDTO>> getTrashItemList() async
  • Future<List<ItemDTO>> getCategoryList(String type) async
  1. 분대장(냉장고) 페이지 (controller/main/fridge_ctrl.dart)
    Class Method를 이용하기에, 아래와 같은 초기화가 필요합니다.
    var fridgeCtrl = FridgeController(); fridgeCtrl.init(String? reqFridgeID)
    간부일 경우 보고싶은 냉장고의 정보를 reqFridgeID,
    분대장일 경우 null
    용사일 경우 거부됩니다.
    import "/firebase/controller/main/general/dto.dart를 해야합니다.
  • FridgeDTO getFridge()
  • Future<List<UserBoxDTO>> getUserList() async
  • Future<List<ItemDTO>> getStatusItemList(String status) async
  • Future<List<ItemDTO>> getNoHostItemList()
  1. 간부(부대) 페이지 (controller/main/unit_ctrl.dart)
    Class Method를 이용하기에, 아래와 같은 초기화가 필요합니다.
    var unitCtrl = UnitController(); unitCtrl.init()
    간부일 경우에만 허용됩니다.
    import "/firebase/controller/main/general/dto.dart를 해야합니다.
  • UnitDTO getUnit()
  • Future<List<FridgeDTO>> getFridgeList() async
  1. 냉장고 추가 페이지 (controller/main/fridge_add.dart)
    Class Method를 이용하기에, 아래와 같은 초기화가 필요합니다.
    var fridgeAddCtrl = FridgeAddController(); unitCtrl.init()
    간부일 경우에만 허용됩니다.
    import "/firebase/controller/main/general/dto.dart를 해야합니다.
  • Future<void> add(String fridgeID) async
  1. 아이템 추가 페이지(controller/main/item_add.dart)
    Class Method를 이용하기에, 아래와 같은 초기화가 필요합니다.
    var itemAddCtrl = ItemAddController(); iutemAddCtrl.init()
    import "/firebase/controller/main/general/dto.dart를 해야합니다.
  • Future<void> add(ItemAddDTO item) async

Return Type인 DTO는 firebase/controller/main/general/dto.dart 로 확인하세요

@hmc0105 hmc0105 added design design related issue firebase firebase related issue labels Oct 4, 2022
@hmc0105 hmc0105 changed the title Design Firebase Client Interface Design Firebase Controller(Client) Interface Oct 4, 2022
@hmc0105 hmc0105 added this to the Overall Design milestone Oct 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design design related issue firebase firebase related issue
Projects
None yet
Development

No branches or pull requests

1 participant