@ccw-api/api 0.3.1 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -7
- package/dist/esm/src/bfs-web/extensions/{eid}/donate.js +14 -0
- package/dist/esm/src/bfs-web/extensions/{eid}/donate.test.js +4 -0
- package/dist/esm/src/bfs-web/index.js +6 -0
- package/dist/esm/src/bfs-web/users/{oid}/extensions.js +21 -0
- package/dist/esm/src/bfs-web/users/{oid}/extensions.test.js +4 -0
- package/dist/esm/src/community-web/api/v1/short_code/encode.js +25 -0
- package/dist/esm/src/community-web/api/v1/short_code/shortcode.test.js +5 -0
- package/dist/esm/src/community-web/approval/approval.test.js +5 -0
- package/dist/esm/src/community-web/approval/list.js +16 -0
- package/dist/esm/src/community-web/base/dateTime.js +10 -0
- package/dist/esm/src/community-web/base/dateTime.test.js +6 -0
- package/dist/esm/src/community-web/campaign_resource/detail.js +12 -0
- package/dist/esm/src/community-web/campaign_resource/detail.test.js +10 -0
- package/dist/esm/src/community-web/ccw-main/status.js +12 -0
- package/dist/esm/src/community-web/ccw-main/status.test.js +4 -0
- package/dist/esm/src/community-web/check_in_record/check_in_record.test.js +8 -0
- package/dist/esm/src/community-web/check_in_record/detail.js +11 -0
- package/dist/esm/src/community-web/check_in_record/insert.js +12 -0
- package/dist/esm/src/community-web/cloud_asset/search.js +25 -0
- package/dist/esm/src/community-web/cloud_asset/search.test.js +6 -0
- package/dist/esm/src/community-web/cloud_asset/user/privacy.js +11 -0
- package/dist/esm/src/community-web/cloud_asset/user/privacy.test.js +4 -0
- package/dist/esm/src/community-web/comment/create.js +16 -0
- package/dist/esm/src/community-web/comment/create.test.js +13 -0
- package/dist/esm/src/community-web/comment/like_record/create.js +13 -0
- package/dist/esm/src/community-web/comment/like_record/create.test.js +4 -0
- package/dist/esm/src/community-web/comment/page.js +24 -0
- package/dist/esm/src/community-web/comment/page.test.js +15 -0
- package/dist/esm/src/community-web/comment/page_by_topic.js +28 -0
- package/dist/esm/src/community-web/comment/page_by_topic.test.js +13 -0
- package/dist/esm/src/community-web/comment/reply.js +17 -0
- package/dist/esm/src/community-web/comment/reply.test.js +4 -0
- package/dist/esm/src/community-web/config/detail.js +13 -0
- package/dist/esm/src/community-web/config/detail.test.js +9 -0
- package/dist/esm/src/community-web/creation/detail.js +14 -0
- package/dist/esm/src/community-web/creation/detail.test.js +18 -0
- package/dist/esm/src/community-web/creation/excellent/list.js +13 -0
- package/dist/esm/src/community-web/creation/excellent/list.test.js +10 -0
- package/dist/esm/src/community-web/creation/introduction/detail.js +13 -0
- package/dist/esm/src/community-web/creation/introduction/detail.test.js +17 -0
- package/dist/esm/src/community-web/creation/like/detail.js +13 -0
- package/dist/esm/src/community-web/creation/like/detail.test.js +19 -0
- package/dist/esm/src/community-web/creation/loading/tips.js +11 -0
- package/dist/esm/src/community-web/creation/loading/tips.test.js +8 -0
- package/dist/esm/src/community-web/creation/own/page.js +26 -0
- package/dist/esm/src/community-web/creation/own/page.test.js +4 -0
- package/dist/esm/src/community-web/creation/page.js +24 -0
- package/dist/esm/src/community-web/creation/page.test.js +16 -0
- package/dist/esm/src/community-web/creation/page_by_student.js +24 -0
- package/dist/esm/src/community-web/creation/page_by_student.test.js +20 -0
- package/dist/esm/src/community-web/creation/potential/list.js +13 -0
- package/dist/esm/src/community-web/creation/potential/list.test.js +10 -0
- package/dist/esm/src/community-web/creation/recommend.js +23 -0
- package/dist/esm/src/community-web/creation/recommend.test.js +10 -0
- package/dist/esm/src/community-web/creation/search/page.js +24 -0
- package/dist/esm/src/community-web/creation/search/page.test.js +5 -0
- package/dist/esm/src/community-web/creation/smart_contract/split_rule/create.js +14 -0
- package/dist/esm/src/community-web/creation/smart_contract/split_rule/create.test.js +4 -0
- package/dist/esm/src/community-web/creation/smart_contract/split_rule/detail.js +13 -0
- package/dist/esm/src/community-web/creation/smart_contract/split_rule/detail.test.js +4 -0
- package/dist/esm/src/community-web/creation/student/detail.js +13 -0
- package/dist/esm/src/community-web/creation/student/detail.test.js +17 -0
- package/dist/esm/src/community-web/creation/submit.js +12 -0
- package/dist/esm/src/community-web/creation/submit.test.js +32 -0
- package/dist/esm/src/community-web/creation/tag/list.js +12 -0
- package/dist/esm/src/community-web/creation/tag/list.test.js +10 -0
- package/dist/esm/src/community-web/creation/team_member/list.js +14 -0
- package/dist/esm/src/community-web/creation/team_member/list.test.js +4 -0
- package/dist/esm/src/community-web/creation/team_member/produce_ticket.js +13 -0
- package/dist/esm/src/community-web/creation/team_member/produce_ticket.test.js +4 -0
- package/dist/esm/src/community-web/creation/teamwork_log/page.js +38 -0
- package/dist/esm/src/community-web/creation/teamwork_log/page.test.js +4 -0
- package/dist/esm/src/community-web/creation/update.js +22 -0
- package/dist/esm/src/community-web/creation/update.test.js +4 -0
- package/dist/esm/src/community-web/creation_activity_stats/list.js +13 -0
- package/dist/esm/src/community-web/creation_activity_stats/list.test.js +5 -0
- package/dist/esm/src/community-web/creation_attribute/detail.js +24 -0
- package/dist/esm/src/community-web/creation_attribute/detail.test.js +10 -0
- package/dist/esm/src/community-web/creation_donated_record/ranking_list.js +22 -0
- package/dist/esm/src/community-web/creation_donated_record/ranking_list.test.js +12 -0
- package/dist/esm/src/community-web/creation_favorite/detail.js +13 -0
- package/dist/esm/src/community-web/creation_favorite/detail.test.js +5 -0
- package/dist/esm/src/community-web/creation_recommend_position/list.js +14 -0
- package/dist/esm/src/community-web/creation_recommend_position/list.test.js +5 -0
- package/dist/esm/src/community-web/creation_release/code_profiling/detail.js +14 -0
- package/dist/esm/src/community-web/creation_release/code_profiling/detail.test.js +5 -0
- package/dist/esm/src/community-web/creation_release/page.js +24 -0
- package/dist/esm/src/community-web/creation_release/page.test.js +12 -0
- package/dist/esm/src/community-web/creation_screenshot/page.js +20 -0
- package/dist/esm/src/community-web/creation_screenshot/page.test.js +11 -0
- package/dist/esm/src/community-web/creation_stats/view.js +14 -0
- package/dist/esm/src/community-web/creation_stats/view.test.js +6 -0
- package/dist/esm/src/community-web/currency/account/personal.js +11 -0
- package/dist/esm/src/community-web/currency/account/personal.test.js +4 -0
- package/dist/esm/src/community-web/emoji/all.js +11 -0
- package/dist/esm/src/community-web/emoji/all.test.js +11 -0
- package/dist/esm/src/community-web/emoji/category/list.js +11 -0
- package/dist/esm/src/community-web/emoji/category/list.test.js +9 -0
- package/dist/esm/src/community-web/emoji/page.js +23 -0
- package/dist/esm/src/community-web/emoji/page.test.js +12 -0
- package/dist/esm/src/community-web/event.js +13 -0
- package/dist/esm/src/community-web/event.test.js +5 -0
- package/dist/esm/src/community-web/hash_tag/detail.js +13 -0
- package/dist/esm/src/community-web/hash_tag/hash_tag_detail.test.js +9 -0
- package/dist/esm/src/community-web/hash_tag/managed/list.js +29 -0
- package/dist/esm/src/community-web/hash_tag/managed/managed_list.test.js +10 -0
- package/dist/esm/src/community-web/hash_tag/recommend/list.js +11 -0
- package/dist/esm/src/community-web/hash_tag/recommend/list.test.js +4 -0
- package/dist/esm/src/community-web/hash_tag_creation/hash_tag_creation_list_relation.test.js +4 -0
- package/dist/esm/src/community-web/hash_tag_creation/hash_tag_creation_mine.test.js +4 -0
- package/dist/esm/src/community-web/hash_tag_creation/list_relation.js +13 -0
- package/dist/esm/src/community-web/hash_tag_creation/list_relation.test.js +5 -0
- package/dist/esm/src/community-web/hash_tag_creation/mine.js +29 -0
- package/dist/esm/src/community-web/hash_tag_favorite/detail.js +13 -0
- package/dist/esm/src/community-web/hash_tag_favorite/hash_tag_favorite_detail.test.js +4 -0
- package/dist/esm/src/community-web/health/check.js +12 -0
- package/dist/esm/src/community-web/health/check.test.js +10 -0
- package/dist/esm/src/community-web/historical_team_member/page.js +27 -0
- package/dist/esm/src/community-web/historical_team_member/page.test.js +12 -0
- package/dist/esm/src/community-web/index.js +192 -0
- package/dist/esm/src/community-web/leaflets/item/list.js +13 -0
- package/dist/esm/src/community-web/leaflets/item/list.test.js +5 -0
- package/dist/esm/src/community-web/locked_user/detail.js +13 -0
- package/dist/esm/src/community-web/locked_user/detail.test.js +6 -0
- package/dist/esm/src/community-web/muted_user/detail.js +13 -0
- package/dist/esm/src/community-web/muted_user/detail.test.js +6 -0
- package/dist/esm/src/community-web/notification/page.js +23 -0
- package/dist/esm/src/community-web/notification/page.test.js +4 -0
- package/dist/esm/src/community-web/notification/stats/v2.js +13 -0
- package/dist/esm/src/community-web/notification/stats/v2.test.js +4 -0
- package/dist/esm/src/community-web/notify_message/notify_message.test.js +5 -0
- package/dist/esm/src/community-web/notify_message/show.js +12 -0
- package/dist/esm/src/community-web/post/detail.js +13 -0
- package/dist/esm/src/community-web/post/post.test.js +9 -0
- package/dist/esm/src/community-web/search/hot_words.js +13 -0
- package/dist/esm/src/community-web/search/search.test.js +6 -0
- package/dist/esm/src/community-web/short_url/create.js +15 -0
- package/dist/esm/src/community-web/short_url/decompress.js +13 -0
- package/dist/esm/src/community-web/short_url/decompress.test.js +4 -0
- package/dist/esm/src/community-web/short_url/shortUrl.test.js +4 -0
- package/dist/esm/src/community-web/student/block_record/block_record_list.test.js +4 -0
- package/dist/esm/src/community-web/student/block_record/block_record_status.test.js +8 -0
- package/dist/esm/src/community-web/student/block_record/detail.js +13 -0
- package/dist/esm/src/community-web/student/block_record/detail.test.js +4 -0
- package/dist/esm/src/community-web/student/block_record/list.js +21 -0
- package/dist/esm/src/community-web/student/block_record/status.js +13 -0
- package/dist/esm/src/community-web/student/following/page.js +24 -0
- package/dist/esm/src/community-web/student/following/page.test.js +6 -0
- package/dist/esm/src/community-web/students/creator_score.js +12 -0
- package/dist/esm/src/community-web/students/creator_score.test.js +4 -0
- package/dist/esm/src/community-web/students/last_active_at.js +13 -0
- package/dist/esm/src/community-web/students/last_active_at.test.js +6 -0
- package/dist/esm/src/community-web/students/list.js +13 -0
- package/dist/esm/src/community-web/students/list.test.js +7 -0
- package/dist/esm/src/community-web/students/list_sessions.js +21 -0
- package/dist/esm/src/community-web/students/list_sessions.test.js +4 -0
- package/dist/esm/src/community-web/students/profile.js +13 -0
- package/dist/esm/src/community-web/students/profile.test.js +6 -0
- package/dist/esm/src/community-web/students/reputation_score_log/page.js +21 -0
- package/dist/esm/src/community-web/students/reputation_score_log/reputation_score_log.test.js +4 -0
- package/dist/esm/src/community-web/students/self/detail.js +15 -0
- package/dist/esm/src/community-web/students/self/self_detail.test.js +4 -0
- package/dist/esm/src/community-web/students/stats.js +13 -0
- package/dist/esm/src/community-web/students/stats.test.js +7 -0
- package/dist/esm/src/community-web/students/update.js +31 -0
- package/dist/esm/src/community-web/students/update.test.js +4 -0
- package/dist/esm/src/community-web/study-community/cloud_variable/create.js +15 -0
- package/dist/esm/src/community-web/study-community/cloud_variable/create.test.js +4 -0
- package/dist/esm/src/community-web/study-community/comment/delete.js +13 -0
- package/dist/esm/src/community-web/study-community/comment/delete.test.js +4 -0
- package/dist/esm/src/community-web/study-community/comment/fold.js +13 -0
- package/dist/esm/src/community-web/study-community/comment/fold.test.js +4 -0
- package/dist/esm/src/community-web/study-community/comment/reset_weight.js +13 -0
- package/dist/esm/src/community-web/study-community/comment/reset_weight.test.js +4 -0
- package/dist/esm/src/community-web/study-community/comment/top.js +13 -0
- package/dist/esm/src/community-web/study-community/comment/top.test.js +4 -0
- package/dist/esm/src/community-web/study-community/member/detail.js +12 -0
- package/dist/esm/src/community-web/study-community/member/member_detail.test.js +4 -0
- package/dist/esm/src/community-web/study-community/spread_feed/unread/count.js +13 -0
- package/dist/esm/src/community-web/study-community/spread_feed/unread/spread_feed_unread_count.test.js +5 -0
- package/dist/esm/src/community-web/study-trade/trade/donate.js +15 -0
- package/dist/esm/src/community-web/study-trade/trade/donate.test.js +4 -0
- package/dist/esm/src/community-web/subject_area/page.js +22 -0
- package/dist/esm/src/community-web/subject_area/page_by_channel.js +22 -0
- package/dist/esm/src/community-web/subject_area/subject_area_page.test.js +5 -0
- package/dist/esm/src/community-web/subject_area/subject_area_page_by_channel.test.js +5 -0
- package/dist/esm/src/community-web/task/award.js +13 -0
- package/dist/esm/src/community-web/task/mine.js +12 -0
- package/dist/esm/src/community-web/task/task_award.test.js +5 -0
- package/dist/esm/src/community-web/task/task_mine.test.js +4 -0
- package/dist/esm/src/community-web/typical_project/page.js +25 -0
- package/dist/esm/src/community-web/typical_project/page.test.js +12 -0
- package/dist/esm/src/community-web/typical_project/student/unread_count.js +14 -0
- package/dist/esm/src/community-web/typical_project/student/unread_count.test.js +4 -0
- package/dist/esm/src/community-web/user-card/detail.js +13 -0
- package/dist/esm/src/community-web/user-card/user_card_detail.test.js +6 -0
- package/dist/esm/src/community-web/user_label/list.js +12 -0
- package/dist/esm/src/community-web/user_label/user_label_list.test.js +5 -0
- package/dist/esm/src/coverage.test.js +5 -0
- package/dist/esm/src/gandi-main/bulletins/detail.js +12 -0
- package/dist/esm/src/gandi-main/bulletins/detail.test.js +17 -0
- package/dist/esm/src/gandi-main/bulletins/page.js +24 -0
- package/dist/esm/src/gandi-main/bulletins/page.test.js +6 -0
- package/dist/esm/src/gandi-main/index.js +8 -0
- package/dist/esm/src/gandi-main/timestamp/current.js +9 -0
- package/dist/esm/src/gandi-main/timestamp/current.test.js +6 -0
- package/dist/esm/src/index.js +12 -0
- package/dist/esm/src/queryPages.js +22 -0
- package/dist/esm/src/sso/index.js +8 -0
- package/dist/esm/src/sso/web/auth/auth.test.js +15 -0
- package/dist/esm/src/sso/web/auth/login-by-password.js +27 -0
- package/dist/esm/src/sso/web/auth/logout.js +11 -0
- package/dist/esm/src/sso/web/auth/logout_by_session.js +12 -0
- package/dist/esm/types/notification.js +7 -0
- package/dist/esm/types/notificationContent.js +1 -0
- package/dist/node/src/bfs-web/extensions/{eid}/donate.js +18 -0
- package/dist/node/src/bfs-web/extensions/{eid}/donate.test.js +6 -0
- package/dist/node/src/bfs-web/index.js +9 -0
- package/dist/node/src/bfs-web/users/{oid}/extensions.js +25 -0
- package/dist/node/src/bfs-web/users/{oid}/extensions.test.js +6 -0
- package/dist/node/src/community-web/api/v1/short_code/encode.js +29 -0
- package/dist/node/src/community-web/api/v1/short_code/shortcode.test.js +7 -0
- package/dist/node/src/community-web/approval/approval.test.js +7 -0
- package/dist/node/src/community-web/approval/list.js +23 -0
- package/dist/node/src/community-web/base/dateTime.js +17 -0
- package/dist/node/src/community-web/base/dateTime.test.js +8 -0
- package/dist/node/src/community-web/campaign_resource/detail.js +16 -0
- package/dist/node/src/community-web/campaign_resource/detail.test.js +12 -0
- package/dist/node/src/community-web/ccw-main/status.js +16 -0
- package/dist/node/src/community-web/ccw-main/status.test.js +6 -0
- package/dist/node/src/community-web/check_in_record/check_in_record.test.js +10 -0
- package/dist/node/src/community-web/check_in_record/detail.js +15 -0
- package/dist/node/src/community-web/check_in_record/insert.js +16 -0
- package/dist/node/src/community-web/cloud_asset/search.js +29 -0
- package/dist/node/src/community-web/cloud_asset/search.test.js +8 -0
- package/dist/node/src/community-web/cloud_asset/user/privacy.js +15 -0
- package/dist/node/src/community-web/cloud_asset/user/privacy.test.js +6 -0
- package/dist/node/src/community-web/comment/create.js +20 -0
- package/dist/node/src/community-web/comment/create.test.js +15 -0
- package/dist/node/src/community-web/comment/like_record/create.js +17 -0
- package/dist/node/src/community-web/comment/like_record/create.test.js +6 -0
- package/dist/node/src/community-web/comment/page.js +28 -0
- package/dist/node/src/community-web/comment/page.test.js +17 -0
- package/dist/node/src/community-web/comment/page_by_topic.js +32 -0
- package/dist/node/src/community-web/comment/page_by_topic.test.js +15 -0
- package/dist/node/src/community-web/comment/reply.js +21 -0
- package/dist/node/src/community-web/comment/reply.test.js +6 -0
- package/dist/node/src/community-web/config/detail.js +17 -0
- package/dist/node/src/community-web/config/detail.test.js +11 -0
- package/dist/node/src/community-web/creation/detail.js +18 -0
- package/dist/node/src/community-web/creation/detail.test.js +20 -0
- package/dist/node/src/community-web/creation/excellent/list.js +17 -0
- package/dist/node/src/community-web/creation/excellent/list.test.js +12 -0
- package/dist/node/src/community-web/creation/introduction/detail.js +17 -0
- package/dist/node/src/community-web/creation/introduction/detail.test.js +19 -0
- package/dist/node/src/community-web/creation/like/detail.js +17 -0
- package/dist/node/src/community-web/creation/like/detail.test.js +21 -0
- package/dist/node/src/community-web/creation/loading/tips.js +15 -0
- package/dist/node/src/community-web/creation/loading/tips.test.js +10 -0
- package/dist/node/src/community-web/creation/own/page.js +30 -0
- package/dist/node/src/community-web/creation/own/page.test.js +6 -0
- package/dist/node/src/community-web/creation/page.js +28 -0
- package/dist/node/src/community-web/creation/page.test.js +18 -0
- package/dist/node/src/community-web/creation/page_by_student.js +28 -0
- package/dist/node/src/community-web/creation/page_by_student.test.js +22 -0
- package/dist/node/src/community-web/creation/potential/list.js +17 -0
- package/dist/node/src/community-web/creation/potential/list.test.js +12 -0
- package/dist/node/src/community-web/creation/recommend.js +27 -0
- package/dist/node/src/community-web/creation/recommend.test.js +12 -0
- package/dist/node/src/community-web/creation/search/page.js +28 -0
- package/dist/node/src/community-web/creation/search/page.test.js +7 -0
- package/dist/node/src/community-web/creation/smart_contract/split_rule/create.js +18 -0
- package/dist/node/src/community-web/creation/smart_contract/split_rule/create.test.js +6 -0
- package/dist/node/src/community-web/creation/smart_contract/split_rule/detail.js +17 -0
- package/dist/node/src/community-web/creation/smart_contract/split_rule/detail.test.js +6 -0
- package/dist/node/src/community-web/creation/student/detail.js +17 -0
- package/dist/node/src/community-web/creation/student/detail.test.js +19 -0
- package/dist/node/src/community-web/creation/submit.js +16 -0
- package/dist/node/src/community-web/creation/submit.test.js +34 -0
- package/dist/node/src/community-web/creation/tag/list.js +16 -0
- package/dist/node/src/community-web/creation/tag/list.test.js +12 -0
- package/dist/node/src/community-web/creation/team_member/list.js +18 -0
- package/dist/node/src/community-web/creation/team_member/list.test.js +6 -0
- package/dist/node/src/community-web/creation/team_member/produce_ticket.js +17 -0
- package/dist/node/src/community-web/creation/team_member/produce_ticket.test.js +6 -0
- package/dist/node/src/community-web/creation/teamwork_log/page.js +42 -0
- package/dist/node/src/community-web/creation/teamwork_log/page.test.js +6 -0
- package/dist/node/src/community-web/creation/update.js +26 -0
- package/dist/node/src/community-web/creation/update.test.js +6 -0
- package/dist/node/src/community-web/creation_activity_stats/list.js +17 -0
- package/dist/node/src/community-web/creation_activity_stats/list.test.js +7 -0
- package/dist/node/src/community-web/creation_attribute/detail.js +28 -0
- package/dist/node/src/community-web/creation_attribute/detail.test.js +12 -0
- package/dist/node/src/community-web/creation_donated_record/ranking_list.js +26 -0
- package/dist/node/src/community-web/creation_donated_record/ranking_list.test.js +14 -0
- package/dist/node/src/community-web/creation_favorite/detail.js +17 -0
- package/dist/node/src/community-web/creation_favorite/detail.test.js +7 -0
- package/dist/node/src/community-web/creation_recommend_position/list.js +18 -0
- package/dist/node/src/community-web/creation_recommend_position/list.test.js +7 -0
- package/dist/node/src/community-web/creation_release/code_profiling/detail.js +18 -0
- package/dist/node/src/community-web/creation_release/code_profiling/detail.test.js +7 -0
- package/dist/node/src/community-web/creation_release/page.js +28 -0
- package/dist/node/src/community-web/creation_release/page.test.js +14 -0
- package/dist/node/src/community-web/creation_screenshot/page.js +24 -0
- package/dist/node/src/community-web/creation_screenshot/page.test.js +13 -0
- package/dist/node/src/community-web/creation_stats/view.js +18 -0
- package/dist/node/src/community-web/creation_stats/view.test.js +8 -0
- package/dist/node/src/community-web/currency/account/personal.js +15 -0
- package/dist/node/src/community-web/currency/account/personal.test.js +6 -0
- package/dist/node/src/community-web/emoji/all.js +15 -0
- package/dist/node/src/community-web/emoji/all.test.js +13 -0
- package/dist/node/src/community-web/emoji/category/list.js +15 -0
- package/dist/node/src/community-web/emoji/category/list.test.js +11 -0
- package/dist/node/src/community-web/emoji/page.js +27 -0
- package/dist/node/src/community-web/emoji/page.test.js +14 -0
- package/dist/node/src/community-web/event.js +17 -0
- package/dist/node/src/community-web/event.test.js +7 -0
- package/dist/node/src/community-web/hash_tag/detail.js +17 -0
- package/dist/node/src/community-web/hash_tag/hash_tag_detail.test.js +11 -0
- package/dist/node/src/community-web/hash_tag/managed/list.js +33 -0
- package/dist/node/src/community-web/hash_tag/managed/managed_list.test.js +12 -0
- package/dist/node/src/community-web/hash_tag/recommend/list.js +15 -0
- package/dist/node/src/community-web/hash_tag/recommend/list.test.js +6 -0
- package/dist/node/src/community-web/hash_tag_creation/hash_tag_creation_list_relation.test.js +6 -0
- package/dist/node/src/community-web/hash_tag_creation/hash_tag_creation_mine.test.js +6 -0
- package/dist/node/src/community-web/hash_tag_creation/list_relation.js +17 -0
- package/dist/node/src/community-web/hash_tag_creation/list_relation.test.js +7 -0
- package/dist/node/src/community-web/hash_tag_creation/mine.js +33 -0
- package/dist/node/src/community-web/hash_tag_favorite/detail.js +17 -0
- package/dist/node/src/community-web/hash_tag_favorite/hash_tag_favorite_detail.test.js +6 -0
- package/dist/node/src/community-web/health/check.js +16 -0
- package/dist/node/src/community-web/health/check.test.js +12 -0
- package/dist/node/src/community-web/historical_team_member/page.js +31 -0
- package/dist/node/src/community-web/historical_team_member/page.test.js +14 -0
- package/dist/node/src/community-web/index.js +195 -0
- package/dist/node/src/community-web/leaflets/item/list.js +17 -0
- package/dist/node/src/community-web/leaflets/item/list.test.js +7 -0
- package/dist/node/src/community-web/locked_user/detail.js +17 -0
- package/dist/node/src/community-web/locked_user/detail.test.js +8 -0
- package/dist/node/src/community-web/muted_user/detail.js +17 -0
- package/dist/node/src/community-web/muted_user/detail.test.js +8 -0
- package/dist/node/src/community-web/notification/page.js +27 -0
- package/dist/node/src/community-web/notification/page.test.js +6 -0
- package/dist/node/src/community-web/notification/stats/v2.js +17 -0
- package/dist/node/src/community-web/notification/stats/v2.test.js +6 -0
- package/dist/node/src/community-web/notify_message/notify_message.test.js +7 -0
- package/dist/node/src/community-web/notify_message/show.js +16 -0
- package/dist/node/src/community-web/post/detail.js +17 -0
- package/dist/node/src/community-web/post/post.test.js +11 -0
- package/dist/node/src/community-web/search/hot_words.js +17 -0
- package/dist/node/src/community-web/search/search.test.js +8 -0
- package/dist/node/src/community-web/short_url/create.js +19 -0
- package/dist/node/src/community-web/short_url/decompress.js +17 -0
- package/dist/node/src/community-web/short_url/decompress.test.js +6 -0
- package/dist/node/src/community-web/short_url/shortUrl.test.js +6 -0
- package/dist/node/src/community-web/student/block_record/block_record_list.test.js +6 -0
- package/dist/node/src/community-web/student/block_record/block_record_status.test.js +10 -0
- package/dist/node/src/community-web/student/block_record/detail.js +17 -0
- package/dist/node/src/community-web/student/block_record/detail.test.js +6 -0
- package/dist/node/src/community-web/student/block_record/list.js +25 -0
- package/dist/node/src/community-web/student/block_record/status.js +17 -0
- package/dist/node/src/community-web/student/following/page.js +28 -0
- package/dist/node/src/community-web/student/following/page.test.js +8 -0
- package/dist/node/src/community-web/students/creator_score.js +16 -0
- package/dist/node/src/community-web/students/creator_score.test.js +6 -0
- package/dist/node/src/community-web/students/last_active_at.js +17 -0
- package/dist/node/src/community-web/students/last_active_at.test.js +8 -0
- package/dist/node/src/community-web/students/list.js +17 -0
- package/dist/node/src/community-web/students/list.test.js +9 -0
- package/dist/node/src/community-web/students/list_sessions.js +25 -0
- package/dist/node/src/community-web/students/list_sessions.test.js +6 -0
- package/dist/node/src/community-web/students/profile.js +17 -0
- package/dist/node/src/community-web/students/profile.test.js +8 -0
- package/dist/node/src/community-web/students/reputation_score_log/page.js +25 -0
- package/dist/node/src/community-web/students/reputation_score_log/reputation_score_log.test.js +6 -0
- package/dist/node/src/community-web/students/self/detail.js +19 -0
- package/dist/node/src/community-web/students/self/self_detail.test.js +6 -0
- package/dist/node/src/community-web/students/stats.js +17 -0
- package/dist/node/src/community-web/students/stats.test.js +9 -0
- package/dist/node/src/community-web/students/update.js +35 -0
- package/dist/node/src/community-web/students/update.test.js +6 -0
- package/dist/node/src/community-web/study-community/cloud_variable/create.js +19 -0
- package/dist/node/src/community-web/study-community/cloud_variable/create.test.js +6 -0
- package/dist/node/src/community-web/study-community/comment/delete.js +17 -0
- package/dist/node/src/community-web/study-community/comment/delete.test.js +6 -0
- package/dist/node/src/community-web/study-community/comment/fold.js +17 -0
- package/dist/node/src/community-web/study-community/comment/fold.test.js +6 -0
- package/dist/node/src/community-web/study-community/comment/reset_weight.js +17 -0
- package/dist/node/src/community-web/study-community/comment/reset_weight.test.js +6 -0
- package/dist/node/src/community-web/study-community/comment/top.js +17 -0
- package/dist/node/src/community-web/study-community/comment/top.test.js +6 -0
- package/dist/node/src/community-web/study-community/member/detail.js +16 -0
- package/dist/node/src/community-web/study-community/member/member_detail.test.js +6 -0
- package/dist/node/src/community-web/study-community/spread_feed/unread/count.js +17 -0
- package/dist/node/src/community-web/study-community/spread_feed/unread/spread_feed_unread_count.test.js +7 -0
- package/dist/node/src/community-web/study-trade/trade/donate.js +19 -0
- package/dist/node/src/community-web/study-trade/trade/donate.test.js +6 -0
- package/dist/node/src/community-web/subject_area/page.js +26 -0
- package/dist/node/src/community-web/subject_area/page_by_channel.js +26 -0
- package/dist/node/src/community-web/subject_area/subject_area_page.test.js +7 -0
- package/dist/node/src/community-web/subject_area/subject_area_page_by_channel.test.js +7 -0
- package/dist/node/src/community-web/task/award.js +17 -0
- package/dist/node/src/community-web/task/mine.js +16 -0
- package/dist/node/src/community-web/task/task_award.test.js +7 -0
- package/dist/node/src/community-web/task/task_mine.test.js +6 -0
- package/dist/node/src/community-web/typical_project/page.js +29 -0
- package/dist/node/src/community-web/typical_project/page.test.js +14 -0
- package/dist/node/src/community-web/typical_project/student/unread_count.js +18 -0
- package/dist/node/src/community-web/typical_project/student/unread_count.test.js +6 -0
- package/dist/node/src/community-web/user-card/detail.js +17 -0
- package/dist/node/src/community-web/user-card/user_card_detail.test.js +8 -0
- package/dist/node/src/community-web/user_label/list.js +16 -0
- package/dist/node/src/community-web/user_label/user_label_list.test.js +7 -0
- package/dist/node/src/coverage.test.js +7 -0
- package/dist/node/src/gandi-main/bulletins/detail.js +16 -0
- package/dist/node/src/gandi-main/bulletins/detail.test.js +19 -0
- package/dist/node/src/gandi-main/bulletins/page.js +28 -0
- package/dist/node/src/gandi-main/bulletins/page.test.js +8 -0
- package/dist/node/src/gandi-main/index.js +11 -0
- package/dist/node/src/gandi-main/timestamp/current.js +13 -0
- package/dist/node/src/gandi-main/timestamp/current.test.js +8 -0
- package/dist/node/src/index.js +19 -0
- package/dist/node/src/queryPages.js +26 -0
- package/dist/node/src/sso/index.js +11 -0
- package/dist/node/src/sso/web/auth/auth.test.js +17 -0
- package/dist/node/src/sso/web/auth/login-by-password.js +31 -0
- package/dist/node/src/sso/web/auth/logout.js +15 -0
- package/dist/node/src/sso/web/auth/logout_by_session.js +16 -0
- package/dist/node/types/notification.js +10 -0
- package/dist/node/types/notificationContent.js +2 -0
- package/dist/types/community-web/api/v1/short_code/encode.d.ts +42 -0
- package/dist/types/community-web/approval/list.d.ts +27 -0
- package/dist/types/community-web/base/dateTime.d.ts +5 -0
- package/dist/types/community-web/campaign_resource/detail.d.ts +17 -0
- package/dist/types/community-web/check_in_record/detail.d.ts +14 -0
- package/dist/types/community-web/check_in_record/insert.d.ts +10 -0
- package/dist/types/community-web/cloud_asset/search.d.ts +44 -0
- package/dist/types/community-web/cloud_asset/user/privacy.d.ts +14 -0
- package/dist/types/community-web/comment/page.d.ts +19 -0
- package/dist/types/community-web/comment/page_by_topic.d.ts +19 -0
- package/dist/types/community-web/config/detail.d.ts +11 -0
- package/dist/types/community-web/creation/detail.d.ts +15 -0
- package/dist/types/community-web/creation/excellent/list.d.ts +12 -0
- package/dist/types/community-web/creation/introduction/detail.d.ts +13 -0
- package/dist/types/community-web/creation/like/detail.d.ts +13 -0
- package/dist/types/community-web/creation/loading/tips.d.ts +9 -0
- package/dist/types/community-web/creation/page.d.ts +16 -0
- package/dist/types/community-web/creation/page_by_student.d.ts +16 -0
- package/dist/types/community-web/creation/potential/list.d.ts +12 -0
- package/dist/types/community-web/creation/recommend.d.ts +15 -0
- package/dist/types/community-web/creation/search/page.d.ts +15 -0
- package/dist/types/community-web/creation/student/detail.d.ts +13 -0
- package/dist/types/community-web/creation/tag/list.d.ts +11 -0
- package/dist/types/community-web/index.d.ts +50 -0
- package/dist/types/community-web/short_url/create.d.ts +11 -0
- package/dist/types/index.d.ts +37 -0
- package/dist/types/queryPages.d.ts +9 -0
- package/dist/types/src/bfs-web/extensions/{eid}/donate.d.ts +13 -0
- package/dist/types/src/bfs-web/index.d.ts +6 -0
- package/dist/types/src/bfs-web/users/{oid}/extensions.d.ts +12 -0
- package/dist/types/src/community-web/api/v1/short_code/encode.d.ts +42 -0
- package/dist/types/src/community-web/approval/list.d.ts +27 -0
- package/dist/types/src/community-web/base/dateTime.d.ts +5 -0
- package/dist/types/src/community-web/campaign_resource/detail.d.ts +17 -0
- package/dist/types/src/community-web/ccw-main/status.d.ts +11 -0
- package/dist/types/src/community-web/check_in_record/detail.d.ts +17 -0
- package/dist/types/src/community-web/check_in_record/insert.d.ts +10 -0
- package/dist/types/src/community-web/cloud_asset/search.d.ts +44 -0
- package/dist/types/src/community-web/cloud_asset/user/privacy.d.ts +14 -0
- package/dist/types/src/community-web/comment/create.d.ts +40 -0
- package/dist/types/src/community-web/comment/like_record/create.d.ts +11 -0
- package/dist/types/src/community-web/comment/page.d.ts +19 -0
- package/dist/types/src/community-web/comment/page_by_topic.d.ts +19 -0
- package/dist/types/src/community-web/comment/reply.d.ts +27 -0
- package/dist/types/src/community-web/config/detail.d.ts +11 -0
- package/dist/types/src/community-web/creation/detail.d.ts +15 -0
- package/dist/types/src/community-web/creation/excellent/list.d.ts +12 -0
- package/dist/types/src/community-web/creation/introduction/detail.d.ts +13 -0
- package/dist/types/src/community-web/creation/like/detail.d.ts +13 -0
- package/dist/types/src/community-web/creation/loading/tips.d.ts +9 -0
- package/dist/types/src/community-web/creation/own/page.d.ts +17 -0
- package/dist/types/src/community-web/creation/page.d.ts +16 -0
- package/dist/types/src/community-web/creation/page_by_student.d.ts +16 -0
- package/dist/types/src/community-web/creation/potential/list.d.ts +12 -0
- package/dist/types/src/community-web/creation/recommend.d.ts +15 -0
- package/dist/types/src/community-web/creation/search/page.d.ts +17 -0
- package/dist/types/src/community-web/creation/smart_contract/split_rule/create.d.ts +25 -0
- package/dist/types/src/community-web/creation/smart_contract/split_rule/detail.d.ts +31 -0
- package/dist/types/src/community-web/creation/student/detail.d.ts +13 -0
- package/dist/types/src/community-web/creation/submit.d.ts +39 -0
- package/dist/types/src/community-web/creation/tag/list.d.ts +11 -0
- package/dist/types/src/community-web/creation/team_member/list.d.ts +15 -0
- package/dist/types/src/community-web/creation/team_member/produce_ticket.d.ts +12 -0
- package/dist/types/src/community-web/creation/teamwork_log/page.d.ts +42 -0
- package/dist/types/src/community-web/creation/update.d.ts +19 -0
- package/dist/types/src/community-web/creation_activity_stats/list.d.ts +20 -0
- package/dist/types/src/community-web/creation_attribute/detail.d.ts +34 -0
- package/dist/types/src/community-web/creation_donated_record/ranking_list.d.ts +19 -0
- package/dist/types/src/community-web/creation_favorite/detail.d.ts +13 -0
- package/dist/types/src/community-web/creation_recommend_position/list.d.ts +13 -0
- package/dist/types/src/community-web/creation_release/code_profiling/detail.d.ts +60 -0
- package/dist/types/src/community-web/creation_release/page.d.ts +16 -0
- package/dist/types/src/community-web/creation_screenshot/page.d.ts +15 -0
- package/dist/types/src/community-web/creation_stats/view.d.ts +14 -0
- package/dist/types/src/community-web/currency/account/personal.d.ts +12 -0
- package/dist/types/src/community-web/emoji/all.d.ts +27 -0
- package/dist/types/src/community-web/emoji/category/list.d.ts +16 -0
- package/dist/types/src/community-web/emoji/page.d.ts +17 -0
- package/dist/types/src/community-web/event.d.ts +11 -0
- package/dist/types/src/community-web/hash_tag/detail.d.ts +12 -0
- package/dist/types/src/community-web/hash_tag/managed/list.d.ts +18 -0
- package/dist/types/src/community-web/hash_tag/recommend/list.d.ts +8 -0
- package/dist/types/src/community-web/hash_tag_creation/list_relation.d.ts +13 -0
- package/dist/types/src/community-web/hash_tag_creation/mine.d.ts +18 -0
- package/dist/types/src/community-web/hash_tag_favorite/detail.d.ts +12 -0
- package/dist/types/src/community-web/health/check.d.ts +14 -0
- package/dist/types/src/community-web/historical_team_member/page.d.ts +17 -0
- package/dist/types/src/community-web/index.d.ts +192 -0
- package/dist/types/src/community-web/leaflets/item/list.d.ts +25 -0
- package/dist/types/src/community-web/locked_user/detail.d.ts +24 -0
- package/dist/types/src/community-web/muted_user/detail.d.ts +11 -0
- package/dist/types/src/community-web/notification/page.d.ts +15 -0
- package/dist/types/src/community-web/notification/stats/v2.d.ts +12 -0
- package/dist/types/src/community-web/notify_message/show.d.ts +17 -0
- package/dist/types/src/community-web/post/detail.d.ts +50 -0
- package/dist/types/src/community-web/search/hot_words.d.ts +11 -0
- package/dist/types/src/community-web/short_url/create.d.ts +11 -0
- package/dist/types/src/community-web/short_url/decompress.d.ts +11 -0
- package/dist/types/src/community-web/student/block_record/detail.d.ts +35 -0
- package/dist/types/src/community-web/student/block_record/list.d.ts +18 -0
- package/dist/types/src/community-web/student/block_record/status.d.ts +16 -0
- package/dist/types/src/community-web/student/following/page.d.ts +17 -0
- package/dist/types/src/community-web/students/creator_score.d.ts +9 -0
- package/dist/types/src/community-web/students/last_active_at.d.ts +14 -0
- package/dist/types/src/community-web/students/list.d.ts +13 -0
- package/dist/types/src/community-web/students/list_sessions.d.ts +12 -0
- package/dist/types/src/community-web/students/profile.d.ts +13 -0
- package/dist/types/src/community-web/students/reputation_score_log/page.d.ts +11 -0
- package/dist/types/src/community-web/students/self/detail.d.ts +18 -0
- package/dist/types/src/community-web/students/stats.d.ts +13 -0
- package/dist/types/src/community-web/students/update.d.ts +18 -0
- package/dist/types/src/community-web/study-community/cloud_variable/create.d.ts +15 -0
- package/dist/types/src/community-web/study-community/comment/delete.d.ts +11 -0
- package/dist/types/src/community-web/study-community/comment/fold.d.ts +11 -0
- package/dist/types/src/community-web/study-community/comment/reset_weight.d.ts +11 -0
- package/dist/types/src/community-web/study-community/comment/top.d.ts +14 -0
- package/dist/types/src/community-web/study-community/member/detail.d.ts +25 -0
- package/dist/types/src/community-web/study-community/spread_feed/unread/count.d.ts +12 -0
- package/dist/types/src/community-web/study-trade/trade/donate.d.ts +17 -0
- package/dist/types/src/community-web/subject_area/page.d.ts +71 -0
- package/dist/types/src/community-web/subject_area/page_by_channel.d.ts +73 -0
- package/dist/types/src/community-web/task/award.d.ts +19 -0
- package/dist/types/src/community-web/task/mine.d.ts +29 -0
- package/dist/types/src/community-web/typical_project/page.d.ts +29 -0
- package/dist/types/src/community-web/typical_project/student/unread_count.d.ts +13 -0
- package/dist/types/src/community-web/user-card/detail.d.ts +43 -0
- package/dist/types/src/community-web/user_label/list.d.ts +11 -0
- package/dist/types/src/gandi-main/bulletins/detail.d.ts +16 -0
- package/dist/types/src/gandi-main/bulletins/page.d.ts +19 -0
- package/dist/types/src/gandi-main/index.d.ts +8 -0
- package/dist/types/src/gandi-main/timestamp/current.d.ts +7 -0
- package/dist/types/src/index.d.ts +121 -0
- package/dist/types/src/queryPages.d.ts +9 -0
- package/dist/types/src/sso/index.d.ts +8 -0
- package/dist/types/src/sso/web/auth/login-by-password.d.ts +50 -0
- package/dist/types/src/sso/web/auth/logout.d.ts +6 -0
- package/dist/types/src/sso/web/auth/logout_by_session.d.ts +7 -0
- package/dist/types/sso/index.d.ts +8 -0
- package/dist/types/sso/web/auth/login-by-password.d.ts +50 -0
- package/dist/types/sso/web/auth/logout.d.ts +6 -0
- package/dist/types/sso/web/auth/logout_by_session.d.ts +7 -0
- package/dist/types/types/notification.d.ts +66 -0
- package/dist/types/types/notificationContent.d.ts +126 -0
- package/package.json +8 -3
- package/AGENT.md +0 -271
- package/tsconfig.esm.json +0 -8
- package/tsconfig.json +0 -14
- package/tsconfig.node.json +0 -9
- package/tsconfig.types.json +0 -9
package/README.md
CHANGED
|
@@ -40,9 +40,9 @@ setToken("abcdefgfoo");
|
|
|
40
40
|
### 2. 调用方式
|
|
41
41
|
|
|
42
42
|
```ts
|
|
43
|
-
import { sso, communityWeb } from "@ccw-api/api"; // ✅ 推荐:具名导入
|
|
43
|
+
import { sso, communityWeb, gandiMain, bfsWeb } from "@ccw-api/api"; // ✅ 推荐:具名导入
|
|
44
44
|
// 或
|
|
45
|
-
import api from "@ccw-api/api"; // ✅ default 导入:api.sso / api.communityWeb
|
|
45
|
+
import api from "@ccw-api/api"; // ✅ default 导入:api.sso / api.communityWeb / api.gandiMain / api.bfsWeb
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
---
|
|
@@ -71,7 +71,7 @@ await logoutBySession("64...session_oid");
|
|
|
71
71
|
|
|
72
72
|
## 模块二:Community-Web(community-web.ccw.site)
|
|
73
73
|
|
|
74
|
-
覆盖作品 / 学生 / 星球 / 评论 / 通知 / 任务 / 表情 / 签到 / 云资产 / 学科专区 等业务领域,共 **
|
|
74
|
+
覆盖作品 / 学生 / 星球 / 评论 / 通知 / 任务 / 表情 / 签到 / 云资产 / 学科专区 等业务领域,共 **95 个 API**。
|
|
75
75
|
下面是常用场景示例。
|
|
76
76
|
|
|
77
77
|
### 学生与作品
|
|
@@ -200,6 +200,48 @@ const locked = await communityWeb.getLockedUserDetail<true>(
|
|
|
200
200
|
const muted = await communityWeb.getMutedUserDetail("244373873");
|
|
201
201
|
```
|
|
202
202
|
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## 模块三:Gandi-Main(gandi-main.ccw.site)
|
|
206
|
+
|
|
207
|
+
公告与服务器时间相关,共 **3 个 API**:
|
|
208
|
+
|
|
209
|
+
```ts
|
|
210
|
+
const { getCurrentTimestamp, getBulletinsPage, getBulletinDetail } = gandiMain;
|
|
211
|
+
|
|
212
|
+
// 服务端当前毫秒级时间戳(比客户端时间更可靠,可用于签到、排行榜等需要严格时间判断的场景)
|
|
213
|
+
const ts = await gandiMain.getCurrentTimestamp();
|
|
214
|
+
|
|
215
|
+
// 分页拉取公告列表(默认按 publishedAt 倒序,过滤已发布)
|
|
216
|
+
const bulletins = await gandiMain.getBulletinsPage("PUBLISHED", {
|
|
217
|
+
page: 1,
|
|
218
|
+
perPage: 10,
|
|
219
|
+
});
|
|
220
|
+
// bulletins.data[0].title / id / publishedAt
|
|
221
|
+
|
|
222
|
+
// 某条公告详情
|
|
223
|
+
const detail = await gandiMain.getBulletinDetail(123);
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## 模块四:BFS-Web(bfs-web.ccw.site)
|
|
229
|
+
|
|
230
|
+
用户扩展(extension)管理,共 **1 个 API**:
|
|
231
|
+
|
|
232
|
+
```ts
|
|
233
|
+
const { getUserExtensions } = bfsWeb;
|
|
234
|
+
|
|
235
|
+
// 分页查询某用户上传/使用过的扩展列表(默认按 updatedAt 倒序)
|
|
236
|
+
const exts = await bfsWeb.getUserExtensions("63c2807d669fa967f17f5559", {
|
|
237
|
+
page: 1,
|
|
238
|
+
perPage: 20,
|
|
239
|
+
});
|
|
240
|
+
// exts: PagesRes<Extension>
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
203
245
|
### 通用工具型 API
|
|
204
246
|
|
|
205
247
|
```ts
|
|
@@ -271,7 +313,8 @@ type PlanetRank = Creation.HashTagCreationRank; // "ORDINARY"
|
|
|
271
313
|
```ts
|
|
272
314
|
import type { PageArgs, PagesRes } from "@ccw-api/api";
|
|
273
315
|
|
|
274
|
-
// 入参
|
|
316
|
+
// 入参 T extends string
|
|
317
|
+
// Partial<PageArgs<SortField|T>>,默认 { page:1, perPage:20, sortType:"DESC" }
|
|
275
318
|
// 出参 PagesRes<T> 完整结构:
|
|
276
319
|
const p: PagesRes<Creation.Creation> = {
|
|
277
320
|
data: [], // 当前页数据
|
|
@@ -293,7 +336,7 @@ const p: PagesRes<Creation.Creation> = {
|
|
|
293
336
|
# 三产物构建(node / esm / .d.ts)
|
|
294
337
|
npm run build
|
|
295
338
|
|
|
296
|
-
# 跑测试(Jest 30 + ts-jest,
|
|
339
|
+
# 跑测试(Jest 30 + ts-jest,101 suites / 106 tests)
|
|
297
340
|
npm test
|
|
298
341
|
npm run test:dev # watch 模式
|
|
299
342
|
|
|
@@ -310,7 +353,7 @@ npm run doc:dev
|
|
|
310
353
|
|
|
311
354
|
所有 API 文件严格遵循 `AGENT.md` 规范:
|
|
312
355
|
|
|
313
|
-
- **按域名分组**:`src/sso` / `src/community-web`,内部子目录对应 URL 路径
|
|
356
|
+
- **按域名分组**:`src/sso` / `src/community-web` / `src/gandi-main` / `src/bfs-web`,内部子目录对应 URL 路径
|
|
314
357
|
- **单文件单接口**:文件名 `kebab-case`,对应 endpoint 最后一段
|
|
315
358
|
- **7 段式模板**(每个 API 文件内部固定顺序):
|
|
316
359
|
1. `import`
|
|
@@ -321,4 +364,4 @@ npm run doc:dev
|
|
|
321
364
|
6. JSDoc(`@param` / `@returns`)
|
|
322
365
|
7. `export async function xxx(): Promise<Res>`
|
|
323
366
|
|
|
324
|
-
新增 API
|
|
367
|
+
新增 API 时,**最后记得在对应服务的 `index.ts`(如 `src/community-web/index.ts`、`src/gandi-main/index.ts` 等)里 `import + 对象字面量聚合导出`**,否则外部访问不到。
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
export const url = "https://bfs-web.ccw.site/extensions";
|
|
3
|
+
/**
|
|
4
|
+
* 向扩展投币
|
|
5
|
+
* @param {ExtensionDonateEid} eid 扩展id
|
|
6
|
+
* @param {number} bucks 捐赠金币数量
|
|
7
|
+
* @returns {Promise<Res>} 是否捐赠成功
|
|
8
|
+
*/
|
|
9
|
+
export async function donateExtension(eid, bucks) {
|
|
10
|
+
const req = { eid, bucks };
|
|
11
|
+
return await ccwAxios
|
|
12
|
+
.post(`${url}/${eid}/donate`, req)
|
|
13
|
+
.then((res) => res.data.body);
|
|
14
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
import { DEFAULT_PAGE_ARGS, queryPage } from "src/queryPages";
|
|
3
|
+
export const url = "https://bfs-web.ccw.site/users";
|
|
4
|
+
/**
|
|
5
|
+
* 获取用户扩展列表分页
|
|
6
|
+
* @param {MongoDBId} userOid 用户id
|
|
7
|
+
* @param {Partial<PageArgs<"createdAt" | "updatedAt" | T>>} pageArgs_ 分页参数
|
|
8
|
+
* @returns {Promise<Res>} 扩展分页列表
|
|
9
|
+
*/
|
|
10
|
+
export async function getUserExtensions(userOid, pageArgs_ = {
|
|
11
|
+
sortField: "updatedAt",
|
|
12
|
+
}) {
|
|
13
|
+
const pageArgs = {
|
|
14
|
+
...DEFAULT_PAGE_ARGS,
|
|
15
|
+
...pageArgs_,
|
|
16
|
+
};
|
|
17
|
+
const queryUrl = queryPage(`${url}/${userOid}/extensions`, pageArgs);
|
|
18
|
+
return await ccwAxios
|
|
19
|
+
.get(queryUrl)
|
|
20
|
+
.then((res) => res.data.body);
|
|
21
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
export const url = "https://community-web.ccw.site/api/v1/short_code/encode";
|
|
3
|
+
/**
|
|
4
|
+
* 生成作品邀请码
|
|
5
|
+
* @param {MongoDBId} inviterId 邀请人id
|
|
6
|
+
* @param {CNameOssUrl} inviterAvatar 邀请人头像
|
|
7
|
+
* @param {string} inviterName 邀请人用户名
|
|
8
|
+
* @param {MongoDBId} creationOid 作品id
|
|
9
|
+
* @returns {Promise<Res>}
|
|
10
|
+
*/
|
|
11
|
+
export async function encodeShortCode(inviterId, inviterAvatar, inviterName, creationOid) {
|
|
12
|
+
const req = {
|
|
13
|
+
origin: {
|
|
14
|
+
inviterAvatar,
|
|
15
|
+
inviterName,
|
|
16
|
+
inviterId,
|
|
17
|
+
inviterType: "STUDENT",
|
|
18
|
+
entrance: "create_detail",
|
|
19
|
+
creationOid,
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
return await ccwAxios
|
|
23
|
+
.post(url, req)
|
|
24
|
+
.then((res) => res.data.body);
|
|
25
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { encodeShortCode } from "./encode";
|
|
2
|
+
test("test shortcode", async () => {
|
|
3
|
+
const res = await encodeShortCode("63c2807d669fa967f17f5559", "https://m.ccw.site/user_projects_assets/244373873/3fc7886d05aed9f369d2c0bb2d677fc0.jpeg", "孟夫子驾到", "6386e11cfc1ed14684de07f8");
|
|
4
|
+
expect(res.code).toHaveLength("yZdXmD3PvwVPA30W".length);
|
|
5
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import ccwAxios from "@ccw-api/axios";
|
|
2
|
+
export const url = "https://community-web.ccw.site/approval/list";
|
|
3
|
+
/**
|
|
4
|
+
* 获取特定用户的勋章数据
|
|
5
|
+
* @param {MongoDBId} studentOid 用户id
|
|
6
|
+
* @returns {Promise<Res<Tid, Tn>>} 勋章数据
|
|
7
|
+
*/
|
|
8
|
+
export async function getApprovalTags(studentOid) {
|
|
9
|
+
const req = {
|
|
10
|
+
objectId: studentOid,
|
|
11
|
+
objectType: "STUDENT",
|
|
12
|
+
};
|
|
13
|
+
return await ccwAxios
|
|
14
|
+
.post(url, req)
|
|
15
|
+
.then((res) => res.data.body);
|
|
16
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import ccwAxios from "@ccw-api/axios";
|
|
2
|
+
export const url = "https://community-web.ccw.site/base/dateTime";
|
|
3
|
+
/**
|
|
4
|
+
* @returns {Promise<number>} 当前时间戳,相当于Date.now()
|
|
5
|
+
*/
|
|
6
|
+
export async function getTime() {
|
|
7
|
+
return ccwAxios
|
|
8
|
+
.post(url, undefined)
|
|
9
|
+
.then((res) => res.data.body);
|
|
10
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
export const url = "https://community-web.ccw.site/campaign_resource/detail";
|
|
3
|
+
/**
|
|
4
|
+
* 不知道这个接口有什么用,请查看https://www.ccw.site/pages/tags自行寻找用法
|
|
5
|
+
* @param {K} keyword 活动关键词
|
|
6
|
+
* @returns {Promise<Res<K>>}
|
|
7
|
+
*/
|
|
8
|
+
export async function getCampaignResources(keyword) {
|
|
9
|
+
return await ccwAxios
|
|
10
|
+
.post(url, { keyword })
|
|
11
|
+
.then((res) => res.data.body);
|
|
12
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { getCampaignResources } from "./detail";
|
|
2
|
+
test("get campaign resources with tags keyword", async () => {
|
|
3
|
+
const res = await getCampaignResources("tags");
|
|
4
|
+
expect(res.keyword).toBe("tags");
|
|
5
|
+
expect(res.resourceType).toBe("SUBJECT_AREA");
|
|
6
|
+
});
|
|
7
|
+
test("get campaign resources with mmo keyword", async () => {
|
|
8
|
+
const res = await getCampaignResources("mmo");
|
|
9
|
+
expect(res.keyword).toBe("mmo");
|
|
10
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
export const url = "https://community-web.ccw.site/ccw-main/status";
|
|
3
|
+
/**
|
|
4
|
+
* ccw-main/status
|
|
5
|
+
* @returns {Promise<Res>} 信息
|
|
6
|
+
*/
|
|
7
|
+
export async function getCCWMainStatus() {
|
|
8
|
+
const req = {};
|
|
9
|
+
return await ccwAxios
|
|
10
|
+
.post(url, req)
|
|
11
|
+
.then((res) => res.data.body);
|
|
12
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { getCheckInRecords } from "./detail";
|
|
2
|
+
import { insertCheckInRecord } from "./insert";
|
|
3
|
+
test("get check in records should fail without channel", async () => {
|
|
4
|
+
await expect(getCheckInRecords).rejects.toThrow("ccw axios Request failed: token为空(4001082401)");
|
|
5
|
+
});
|
|
6
|
+
test("insert check in record should fail without token", async () => {
|
|
7
|
+
await expect(insertCheckInRecord).rejects.toThrow("ccw axios Request failed: token为空(4001082401)");
|
|
8
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
export const url = "https://community-web.ccw.site/check_in_record/detail";
|
|
3
|
+
/**
|
|
4
|
+
* 获取本月签到记录
|
|
5
|
+
*/
|
|
6
|
+
export async function getCheckInRecords() {
|
|
7
|
+
const req = { scene: "HOMEPAGE" };
|
|
8
|
+
return await ccwAxios
|
|
9
|
+
.post(url, req)
|
|
10
|
+
.then((res) => res.data.body);
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
export const url = "https://community-web.ccw.site/check_in_record/insert";
|
|
3
|
+
/**
|
|
4
|
+
* 插入签到记录(相当于签到)
|
|
5
|
+
* @returns {Promise<boolean>} 是否成功
|
|
6
|
+
*/
|
|
7
|
+
export async function insertCheckInRecord() {
|
|
8
|
+
const req = { scene: "HOMEPAGE" };
|
|
9
|
+
return await ccwAxios
|
|
10
|
+
.post(url, req)
|
|
11
|
+
.then((res) => res.data.body);
|
|
12
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
import { DEFAULT_PAGE_ARGS, queryPage } from "src/queryPages";
|
|
3
|
+
export const url = "https://community-web.ccw.site/cloud_asset/search";
|
|
4
|
+
const dpa = {
|
|
5
|
+
...DEFAULT_PAGE_ARGS,
|
|
6
|
+
sortField: "createdAt",
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* 获取用户云背包特定目录内素材
|
|
10
|
+
* @param {MongoDBId} creatorOid 用户id
|
|
11
|
+
* @param {string} path 目录(例如'/23azZqHBnqj/2BzzTdi5I5C/')
|
|
12
|
+
* @param {Partial<PageArgs<SortField | T>>} pageArgs_ 分页参数
|
|
13
|
+
* @returns {Promise<Res>} 目录内的素材分页结果
|
|
14
|
+
*/
|
|
15
|
+
export async function searchCloudAssets(creatorOid, path = "/", pageArgs_ = {}) {
|
|
16
|
+
const pageArgs = {
|
|
17
|
+
...dpa,
|
|
18
|
+
...pageArgs_,
|
|
19
|
+
};
|
|
20
|
+
const queryUrl = queryPage(url, pageArgs);
|
|
21
|
+
const req = { creatorOid, path };
|
|
22
|
+
return await ccwAxios
|
|
23
|
+
.post(queryUrl, req)
|
|
24
|
+
.then((res) => res.data.body);
|
|
25
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { searchCloudAssets } from "./search";
|
|
2
|
+
test("search cloud assets should fail without token", async () => {
|
|
3
|
+
const userId = "63c2807d669fa967f17f5559";
|
|
4
|
+
const path = "/23azZqHBnqj/";
|
|
5
|
+
await expect(searchCloudAssets(userId, path)).rejects.toThrow("ccw axios Request failed: token为空(4001082401)");
|
|
6
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
export const url = "https://community-web.ccw.site/cloud_asset/user/privacy";
|
|
3
|
+
/**
|
|
4
|
+
* 获取用户云存储空间信息
|
|
5
|
+
* @returns {Promise<Res>} 存储空间信息
|
|
6
|
+
*/
|
|
7
|
+
export async function getUserAssetStorageSize() {
|
|
8
|
+
return await ccwAxios
|
|
9
|
+
.post(url, {})
|
|
10
|
+
.then((res) => res.data.body);
|
|
11
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
export const url = "https://community-web.ccw.site/comment/create";
|
|
3
|
+
/**
|
|
4
|
+
* 创建评论
|
|
5
|
+
* @param {string} content 评论内容
|
|
6
|
+
* @param {MinimalTopicInfo} topic 主题信息
|
|
7
|
+
* @param {string} sectionType 板块类型
|
|
8
|
+
* @returns {Promise<Res>} 创建的评论
|
|
9
|
+
*/
|
|
10
|
+
export async function createComment(content, topic, sectionType) {
|
|
11
|
+
topic.outline ??= "foo";
|
|
12
|
+
const req = { content, topic, sectionType };
|
|
13
|
+
return await ccwAxios
|
|
14
|
+
.post(url, req)
|
|
15
|
+
.then((res) => res.data.body);
|
|
16
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createComment } from "./create";
|
|
2
|
+
import { getPostDetail } from "../post/detail";
|
|
3
|
+
let samplePost;
|
|
4
|
+
beforeAll(async () => {
|
|
5
|
+
samplePost = await getPostDetail("0173b23d-139d-4c48-ad98-0aa17b5d3b60");
|
|
6
|
+
}, 30000);
|
|
7
|
+
test("create comment should fail without token", async () => {
|
|
8
|
+
await expect(createComment("test", {
|
|
9
|
+
outline: "a",
|
|
10
|
+
subjectOid: samplePost.oid,
|
|
11
|
+
subjectType: "POST",
|
|
12
|
+
}, "COMMENT")).rejects.toThrow("token为空");
|
|
13
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
export const url = "https://community-web.ccw.site/comment/like_record/create";
|
|
3
|
+
/**
|
|
4
|
+
* 点赞评论
|
|
5
|
+
* @param {number} commentId 评论id
|
|
6
|
+
* @returns {Promise<Res>} 操作是否成功
|
|
7
|
+
*/
|
|
8
|
+
export async function likeComment(commentId) {
|
|
9
|
+
const req = { commentId };
|
|
10
|
+
return await ccwAxios
|
|
11
|
+
.post(url, req)
|
|
12
|
+
.then((res) => res.data.body);
|
|
13
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
import { DEFAULT_PAGE_ARGS, queryPage } from "src/queryPages";
|
|
3
|
+
export const url = "https://community-web.ccw.site/comment/page";
|
|
4
|
+
/**
|
|
5
|
+
* 根据topicId获取评论的回复
|
|
6
|
+
* @param {number} topicId 话题id
|
|
7
|
+
* @param {number} parentId 父评论id
|
|
8
|
+
* @param {("PUBLISHED" | "FOLDED")[]} statuses 状态过滤
|
|
9
|
+
* @param {Partial<PageArgs<SortField|T>>} pageArgs_ 分页参数
|
|
10
|
+
* @returns {Promise<Res>} 评论分页结果
|
|
11
|
+
*/
|
|
12
|
+
export async function getCommentReplies(topicId, parentId, statuses = ["PUBLISHED", "FOLDED"], pageArgs_ = {
|
|
13
|
+
sortField: "createdAt",
|
|
14
|
+
}) {
|
|
15
|
+
const pageArgs = {
|
|
16
|
+
...DEFAULT_PAGE_ARGS,
|
|
17
|
+
...pageArgs_,
|
|
18
|
+
};
|
|
19
|
+
const queryUrl = queryPage(url, pageArgs);
|
|
20
|
+
const req = { topicId, parentId, statuses };
|
|
21
|
+
return await ccwAxios
|
|
22
|
+
.post(queryUrl, req)
|
|
23
|
+
.then((res) => res.data.body);
|
|
24
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { getCommentReplies } from "./page";
|
|
2
|
+
test("get comment replies should return data", async () => {
|
|
3
|
+
const topicId = 819086;
|
|
4
|
+
const parentId = 9611280;
|
|
5
|
+
const statuses = ["PUBLISHED", "FOLDED"];
|
|
6
|
+
const res = await getCommentReplies(topicId, parentId, statuses);
|
|
7
|
+
expect(Array.isArray(res.data)).toBe(true);
|
|
8
|
+
res.data.forEach((comment) => {
|
|
9
|
+
expect(comment.id).toBeDefined();
|
|
10
|
+
expect(comment.topicId).toBe(topicId);
|
|
11
|
+
expect(comment.parentId).toBe(parentId);
|
|
12
|
+
expect(comment.content).toBeDefined();
|
|
13
|
+
expect(["PUBLISHED", "FOLDED"]).toContain(comment.status);
|
|
14
|
+
});
|
|
15
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
import { DEFAULT_PAGE_ARGS, queryPage } from "src/queryPages";
|
|
3
|
+
export const url = "https://community-web.ccw.site/comment/page_by_topic";
|
|
4
|
+
const dpa = {
|
|
5
|
+
...DEFAULT_PAGE_ARGS,
|
|
6
|
+
sortField: "createdAt",
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* 根据主题获取评论列表
|
|
10
|
+
* @param {string} subjectOid 主题oid
|
|
11
|
+
* @param {SubjectType} subjectType 主题类型 (如: "POST")
|
|
12
|
+
* @param {string} sectionType 区块类型 (如: "COMMENT")
|
|
13
|
+
* @param {Partial<PageArgs<SortField| T>>} pageArgs_ 分页参数
|
|
14
|
+
* @returns {Promise<Res>} 评论分页结果
|
|
15
|
+
*/
|
|
16
|
+
export async function getCommentsByTopic(subjectOid, subjectType, sectionType, pageArgs_ = {
|
|
17
|
+
sortField: "createdAt",
|
|
18
|
+
}) {
|
|
19
|
+
const pageArgs = {
|
|
20
|
+
...dpa,
|
|
21
|
+
...pageArgs_,
|
|
22
|
+
};
|
|
23
|
+
const queryUrl = queryPage(url, pageArgs);
|
|
24
|
+
const req = { subjectOid, subjectType, sectionType };
|
|
25
|
+
return await ccwAxios
|
|
26
|
+
.post(queryUrl, req)
|
|
27
|
+
.then((res) => res.data.body);
|
|
28
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { getCommentsByTopic } from "./page_by_topic";
|
|
2
|
+
test("get comments by topic should return data", async () => {
|
|
3
|
+
const subjectOid = "6a3c73a3b6c84711978d92f2";
|
|
4
|
+
const subjectType = "POST";
|
|
5
|
+
const sectionType = "COMMENT";
|
|
6
|
+
const res = await getCommentsByTopic(subjectOid, subjectType, sectionType);
|
|
7
|
+
expect(Array.isArray(res.data)).toBe(true);
|
|
8
|
+
res.data.forEach((comment) => {
|
|
9
|
+
expect(comment.id).toBeDefined();
|
|
10
|
+
expect(comment.content).toBeDefined();
|
|
11
|
+
expect(["PUBLISHED", "FOLDED"]).toContain(comment.status);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
export const url = "https://community-web.ccw.site/comment/reply";
|
|
3
|
+
/**
|
|
4
|
+
*回复评论
|
|
5
|
+
* @param content 回复内容
|
|
6
|
+
* @param replyToId 评论id
|
|
7
|
+
* @returns {Promise<Res>} 回复的评论
|
|
8
|
+
*/
|
|
9
|
+
export async function replyComment(content, replyToId) {
|
|
10
|
+
const req = {
|
|
11
|
+
content,
|
|
12
|
+
replyToId: `${replyToId}`,
|
|
13
|
+
};
|
|
14
|
+
return await ccwAxios
|
|
15
|
+
.post(url, req)
|
|
16
|
+
.then((res) => res.data.body);
|
|
17
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
export const url = "https://community-web.ccw.site/config/detail";
|
|
3
|
+
/**
|
|
4
|
+
* 获取配置详情
|
|
5
|
+
* @param {string} key 配置键
|
|
6
|
+
* @returns {Promise<Res>} 配置值
|
|
7
|
+
*/
|
|
8
|
+
export async function getConfigDetail(key) {
|
|
9
|
+
const req = { key };
|
|
10
|
+
return await ccwAxios
|
|
11
|
+
.post(url, req)
|
|
12
|
+
.then((res) => res.data.body);
|
|
13
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { getConfigDetail } from "./detail";
|
|
2
|
+
test("get config detail returns value without token", async () => {
|
|
3
|
+
const result = await getConfigDetail("foo");
|
|
4
|
+
expect(result === null ||
|
|
5
|
+
typeof result === "string" ||
|
|
6
|
+
typeof result === "number" ||
|
|
7
|
+
typeof result === "boolean" ||
|
|
8
|
+
typeof result === "object").toBe(true);
|
|
9
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
export const url = "https://community-web.ccw.site/creation/detail";
|
|
3
|
+
/**
|
|
4
|
+
* 获取作品详情
|
|
5
|
+
* @param {MongoDBId} oid 作品id
|
|
6
|
+
* @param {string} accessKey
|
|
7
|
+
* @returns {Promise<Creation>} 作品详情
|
|
8
|
+
*/
|
|
9
|
+
export async function getCreationDetail(oid, accessKey) {
|
|
10
|
+
const req = { oid, accessKey };
|
|
11
|
+
return await ccwAxios
|
|
12
|
+
.post(url, req)
|
|
13
|
+
.then((res) => res.data.body);
|
|
14
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { getCreationDetail } from "./detail";
|
|
2
|
+
import { getExcellentCreations } from "./excellent/list";
|
|
3
|
+
let sampleCreationOid;
|
|
4
|
+
beforeAll(async () => {
|
|
5
|
+
const creations = await getExcellentCreations(1);
|
|
6
|
+
if (creations.length > 0) {
|
|
7
|
+
sampleCreationOid = creations[0].oid;
|
|
8
|
+
}
|
|
9
|
+
}, 30000);
|
|
10
|
+
test("get creation detail should return data", async () => {
|
|
11
|
+
if (!sampleCreationOid) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const res = await getCreationDetail(sampleCreationOid, "");
|
|
15
|
+
expect(res.oid).toBe(sampleCreationOid);
|
|
16
|
+
expect(res.title).toBeDefined();
|
|
17
|
+
expect(res.student).toBeDefined();
|
|
18
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
export const url = "https://community-web.ccw.site/creation/excellent/list";
|
|
3
|
+
/**
|
|
4
|
+
* 获取精选作品列表
|
|
5
|
+
* @param {number} num 数量
|
|
6
|
+
* @returns {Promise<CreationSimple[]>} 作品列表
|
|
7
|
+
*/
|
|
8
|
+
export async function getExcellentCreations(num) {
|
|
9
|
+
const req = { num };
|
|
10
|
+
return await ccwAxios
|
|
11
|
+
.post(url, req)
|
|
12
|
+
.then((res) => res.data.body);
|
|
13
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { getExcellentCreations } from "./list";
|
|
2
|
+
test("get excellent creations should return data", async () => {
|
|
3
|
+
const res = await getExcellentCreations(15);
|
|
4
|
+
expect(Array.isArray(res)).toBe(true);
|
|
5
|
+
res.forEach((c) => {
|
|
6
|
+
expect(c.oid).toBeDefined();
|
|
7
|
+
expect(c.title).toBeDefined();
|
|
8
|
+
});
|
|
9
|
+
expect(res).toHaveLength(15);
|
|
10
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ccwAxios } from "@ccw-api/axios";
|
|
2
|
+
export const url = "https://community-web.ccw.site/creation/introduction/detail";
|
|
3
|
+
/**
|
|
4
|
+
* 获取用户代表作
|
|
5
|
+
* @param {MongoDBId} studentOid 学生id
|
|
6
|
+
* @returns {Promise<Creation>} 作品详情
|
|
7
|
+
*/
|
|
8
|
+
export async function getCreationIntroduction(studentOid) {
|
|
9
|
+
const req = { studentOid };
|
|
10
|
+
return await ccwAxios
|
|
11
|
+
.post(url, req)
|
|
12
|
+
.then((res) => res.data.body);
|
|
13
|
+
}
|