Skip to content

Commit

Permalink
chore: Add API endpoints for uploading talk data and images
Browse files Browse the repository at this point in the history
  • Loading branch information
tako0614 committed Jul 5, 2024
1 parent 264b520 commit 055dd20
Show file tree
Hide file tree
Showing 44 changed files with 384 additions and 50 deletions.
136 changes: 116 additions & 20 deletions fresh.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,24 +36,72 @@ import * as $api_v1_users_info_icon from "./routes/api/v1/users/info/icon.ts"
import * as $api_v1_users_nickname from "./routes/api/v1/users/nickname.ts"
import * as $api_v1_users_username from "./routes/api/v1/users/username.ts"
import * as $api_v1_welcome from "./routes/api/v1/welcome.ts"
import * as $api_v2_client_block_server from "./routes/api/v2/client/block/server.ts"
import * as $api_v2_client_block_user from "./routes/api/v2/client/block/user.ts"
import * as $api_v2_client_csrftoken from "./routes/api/v2/client/csrftoken.ts"
import * as $api_v2_client_friends_request_friend from "./routes/api/v2/client/friends/request/friend.ts"
import * as $api_v2_client_friends_request_join_room from "./routes/api/v2/client/friends/request/join/room.ts"
import * as $api_v2_client_friends_info_ID_icon_friend from "./routes/api/v2/client/friends/info/[ID]/icon/friend.ts"
import * as $api_v2_client_friends_info_ID_icon_friendcode from "./routes/api/v2/client/friends/info/[ID]/icon/friendcode.ts"
import * as $api_v2_client_friends_info_ID_icon_group from "./routes/api/v2/client/friends/info/[ID]/icon/group.ts"
import * as $api_v2_client_friends_info_ID_profile_friend from "./routes/api/v2/client/friends/info/[ID]/profile/friend.ts"
import * as $api_v2_client_friends_info_ID_profile_friendcode from "./routes/api/v2/client/friends/info/[ID]/profile/friendcode.ts"
import * as $api_v2_client_friends_info_ID_profile_group from "./routes/api/v2/client/friends/info/[ID]/profile/group.ts"
import * as $api_v2_client_friends_list from "./routes/api/v2/client/friends/list.ts"
import * as $api_v2_client_main from "./routes/api/v2/client/main.ts"
import * as $api_v2_client_sessions_login from "./routes/api/v2/client/sessions/login.ts"
import * as $api_v2_client_sessions_logout from "./routes/api/v2/client/sessions/logout.ts"
import * as $api_v2_client_sessions_registers_auth from "./routes/api/v2/client/sessions/registers/auth.ts"
import * as $api_v2_client_sessions_registers_check from "./routes/api/v2/client/sessions/registers/check.ts"
import * as $api_v2_client_sessions_registers_temp from "./routes/api/v2/client/sessions/registers/temp.ts"
import * as $api_v2_client_talks_ID_image from "./routes/api/v2/client/talks/[ID]/image.ts"
import * as $api_v2_client_talks_friendlist from "./routes/api/v2/client/talks/friendlist.ts"
import * as $api_v2_client_settings_icon from "./routes/api/v2/client/settings/icon.ts"
import * as $api_v2_client_settings_nickname from "./routes/api/v2/client/settings/nickname.ts"
import * as $api_v2_client_settings_privacy from "./routes/api/v2/client/settings/privacy.ts"
import * as $api_v2_client_talks_delete from "./routes/api/v2/client/talks/delete.ts"
import * as $api_v2_client_talks_read from "./routes/api/v2/client/talks/read.ts"
import * as $api_v2_client_talks_sending_audio from "./routes/api/v2/client/talks/sending/audio.ts"
import * as $api_v2_client_talks_sending_image from "./routes/api/v2/client/talks/sending/image.ts"
import * as $api_v2_client_talks_sending_text from "./routes/api/v2/client/talks/sending/text.ts"
import * as $api_v2_client_talks_sending_update from "./routes/api/v2/client/talks/sending/update.ts"
import * as $api_v2_client_talks_sending_video from "./routes/api/v2/client/talks/sending/video.ts"
import * as $api_v2_client_unblock_server from "./routes/api/v2/client/unblock/server.ts"
import * as $api_v2_client_unblock_user from "./routes/api/v2/client/unblock/user.ts"
import * as $api_v2_client_users_icon from "./routes/api/v2/client/users/icon.ts"
import * as $api_v2_client_users_profile from "./routes/api/v2/client/users/profile.ts"
import * as $api_v2_client_users_settings from "./routes/api/v2/client/users/settings.ts"
import * as $api_v2_client_welcome from "./routes/api/v2/client/welcome.ts"
import * as $api_v2_server_talks_data_load from "./routes/api/v2/server/talks/data/load.ts"
import * as $api_v2_server_talks_data_start from "./routes/api/v2/server/talks/data/start.ts"
import * as $api_v2_server_talks_delete from "./routes/api/v2/server/talks/delete.ts"
import * as $api_v2_server_talks_read from "./routes/api/v2/server/talks/read.ts"
import * as $api_v2_server_talks_send from "./routes/api/v2/server/talks/send.ts"
import * as $api_v2_server_token from "./routes/api/v2/server/token.ts"
import * as $api_v2_server_activity_accept_friend from "./routes/api/v2/server/activity/accept/friend.ts"
import * as $api_v2_server_activity_accept_group from "./routes/api/v2/server/activity/accept/group.ts"
import * as $api_v2_server_activity_block_user from "./routes/api/v2/server/activity/block/user.ts"
import * as $api_v2_server_activity_create_community from "./routes/api/v2/server/activity/create/community.ts"
import * as $api_v2_server_activity_create_group from "./routes/api/v2/server/activity/create/group.ts"
import * as $api_v2_server_activity_delete_community from "./routes/api/v2/server/activity/delete/community.ts"
import * as $api_v2_server_activity_delete_group from "./routes/api/v2/server/activity/delete/group.ts"
import * as $api_v2_server_activity_delete_message from "./routes/api/v2/server/activity/delete/message.ts"
import * as $api_v2_server_activity_flag_community from "./routes/api/v2/server/activity/flag/community.ts"
import * as $api_v2_server_activity_flag_group from "./routes/api/v2/server/activity/flag/group.ts"
import * as $api_v2_server_activity_flag_user from "./routes/api/v2/server/activity/flag/user.ts"
import * as $api_v2_server_activity_ignore_friend from "./routes/api/v2/server/activity/ignore/friend.ts"
import * as $api_v2_server_activity_ignore_group from "./routes/api/v2/server/activity/ignore/group.ts"
import * as $api_v2_server_activity_invite_group from "./routes/api/v2/server/activity/invite/group.ts"
import * as $api_v2_server_activity_join_community from "./routes/api/v2/server/activity/join/community.ts"
import * as $api_v2_server_activity_join_group from "./routes/api/v2/server/activity/join/group.ts"
import * as $api_v2_server_activity_read_message from "./routes/api/v2/server/activity/read/message.ts"
import * as $api_v2_server_activity_read_request from "./routes/api/v2/server/activity/read/request.ts"
import * as $api_v2_server_activity_req_friend from "./routes/api/v2/server/activity/req/friend.ts"
import * as $api_v2_server_activity_talk_audio from "./routes/api/v2/server/activity/talk/audio.ts"
import * as $api_v2_server_activity_talk_image from "./routes/api/v2/server/activity/talk/image.ts"
import * as $api_v2_server_activity_talk_text from "./routes/api/v2/server/activity/talk/text.ts"
import * as $api_v2_server_activity_talk_video from "./routes/api/v2/server/activity/talk/video.ts"
import * as $api_v2_server_activity_update_profile from "./routes/api/v2/server/activity/update/profile.ts"
import * as $api_v2_server_activity_update_text from "./routes/api/v2/server/activity/update/text.ts"
import * as $api_v2_server_blocked from "./routes/api/v2/server/blocked.ts"
import * as $api_v2_server_info from "./routes/api/v2/server/info.ts"
import * as $api_v2_server_information_users_ID_icon_friend from "./routes/api/v2/server/information/users/[ID]/icon/friend.ts"
import * as $api_v2_server_information_users_ID_icon_friendcode from "./routes/api/v2/server/information/users/[ID]/icon/friendcode.ts"
import * as $api_v2_server_information_users_ID_icon_group from "./routes/api/v2/server/information/users/[ID]/icon/group.ts"
import * as $api_v2_server_information_users_ID_name from "./routes/api/v2/server/information/users/[ID]/name.ts"
import * as $api_v2_server_information_users_ID_uuid from "./routes/api/v2/server/information/users/[ID]/uuid.ts"
import * as $api_v2_server_information_users_profile from "./routes/api/v2/server/information/users/profile.ts"
import * as $api_v2_server_pubkey from "./routes/api/v2/server/pubkey.ts"
import * as $home_roomid_ from "./routes/home/[roomid].tsx"
import * as $home_index from "./routes/home/index.tsx"
import * as $index from "./routes/index.tsx"
Expand Down Expand Up @@ -118,24 +166,72 @@ const manifest = {
"./routes/api/v1/users/nickname.ts": $api_v1_users_nickname,
"./routes/api/v1/users/username.ts": $api_v1_users_username,
"./routes/api/v1/welcome.ts": $api_v1_welcome,
"./routes/api/v2/client/block/server.ts": $api_v2_client_block_server,
"./routes/api/v2/client/block/user.ts": $api_v2_client_block_user,
"./routes/api/v2/client/csrftoken.ts": $api_v2_client_csrftoken,
"./routes/api/v2/client/friends/request/friend.ts": $api_v2_client_friends_request_friend,
"./routes/api/v2/client/friends/request/join/room.ts": $api_v2_client_friends_request_join_room,
"./routes/api/v2/client/friends/info/[ID]/icon/friend.ts": $api_v2_client_friends_info_ID_icon_friend,
"./routes/api/v2/client/friends/info/[ID]/icon/friendcode.ts": $api_v2_client_friends_info_ID_icon_friendcode,
"./routes/api/v2/client/friends/info/[ID]/icon/group.ts": $api_v2_client_friends_info_ID_icon_group,
"./routes/api/v2/client/friends/info/[ID]/profile/friend.ts": $api_v2_client_friends_info_ID_profile_friend,
"./routes/api/v2/client/friends/info/[ID]/profile/friendcode.ts": $api_v2_client_friends_info_ID_profile_friendcode,
"./routes/api/v2/client/friends/info/[ID]/profile/group.ts": $api_v2_client_friends_info_ID_profile_group,
"./routes/api/v2/client/friends/list.ts": $api_v2_client_friends_list,
"./routes/api/v2/client/main.ts": $api_v2_client_main,
"./routes/api/v2/client/sessions/login.ts": $api_v2_client_sessions_login,
"./routes/api/v2/client/sessions/logout.ts": $api_v2_client_sessions_logout,
"./routes/api/v2/client/sessions/registers/auth.ts": $api_v2_client_sessions_registers_auth,
"./routes/api/v2/client/sessions/registers/check.ts": $api_v2_client_sessions_registers_check,
"./routes/api/v2/client/sessions/registers/temp.ts": $api_v2_client_sessions_registers_temp,
"./routes/api/v2/client/talks/[ID]/image.ts": $api_v2_client_talks_ID_image,
"./routes/api/v2/client/talks/friendlist.ts": $api_v2_client_talks_friendlist,
"./routes/api/v2/client/settings/icon.ts": $api_v2_client_settings_icon,
"./routes/api/v2/client/settings/nickname.ts": $api_v2_client_settings_nickname,
"./routes/api/v2/client/settings/privacy.ts": $api_v2_client_settings_privacy,
"./routes/api/v2/client/talks/delete.ts": $api_v2_client_talks_delete,
"./routes/api/v2/client/talks/read.ts": $api_v2_client_talks_read,
"./routes/api/v2/client/talks/sending/audio.ts": $api_v2_client_talks_sending_audio,
"./routes/api/v2/client/talks/sending/image.ts": $api_v2_client_talks_sending_image,
"./routes/api/v2/client/talks/sending/text.ts": $api_v2_client_talks_sending_text,
"./routes/api/v2/client/talks/sending/update.ts": $api_v2_client_talks_sending_update,
"./routes/api/v2/client/talks/sending/video.ts": $api_v2_client_talks_sending_video,
"./routes/api/v2/client/unblock/server.ts": $api_v2_client_unblock_server,
"./routes/api/v2/client/unblock/user.ts": $api_v2_client_unblock_user,
"./routes/api/v2/client/users/icon.ts": $api_v2_client_users_icon,
"./routes/api/v2/client/users/profile.ts": $api_v2_client_users_profile,
"./routes/api/v2/client/users/settings.ts": $api_v2_client_users_settings,
"./routes/api/v2/client/welcome.ts": $api_v2_client_welcome,
"./routes/api/v2/server/talks/data/load.ts": $api_v2_server_talks_data_load,
"./routes/api/v2/server/talks/data/start.ts": $api_v2_server_talks_data_start,
"./routes/api/v2/server/talks/delete.ts": $api_v2_server_talks_delete,
"./routes/api/v2/server/talks/read.ts": $api_v2_server_talks_read,
"./routes/api/v2/server/talks/send.ts": $api_v2_server_talks_send,
"./routes/api/v2/server/token.ts": $api_v2_server_token,
"./routes/api/v2/server/activity/accept/friend.ts": $api_v2_server_activity_accept_friend,
"./routes/api/v2/server/activity/accept/group.ts": $api_v2_server_activity_accept_group,
"./routes/api/v2/server/activity/block/user.ts": $api_v2_server_activity_block_user,
"./routes/api/v2/server/activity/create/community.ts": $api_v2_server_activity_create_community,
"./routes/api/v2/server/activity/create/group.ts": $api_v2_server_activity_create_group,
"./routes/api/v2/server/activity/delete/community.ts": $api_v2_server_activity_delete_community,
"./routes/api/v2/server/activity/delete/group.ts": $api_v2_server_activity_delete_group,
"./routes/api/v2/server/activity/delete/message.ts": $api_v2_server_activity_delete_message,
"./routes/api/v2/server/activity/flag/community.ts": $api_v2_server_activity_flag_community,
"./routes/api/v2/server/activity/flag/group.ts": $api_v2_server_activity_flag_group,
"./routes/api/v2/server/activity/flag/user.ts": $api_v2_server_activity_flag_user,
"./routes/api/v2/server/activity/ignore/friend.ts": $api_v2_server_activity_ignore_friend,
"./routes/api/v2/server/activity/ignore/group.ts": $api_v2_server_activity_ignore_group,
"./routes/api/v2/server/activity/invite/group.ts": $api_v2_server_activity_invite_group,
"./routes/api/v2/server/activity/join/community.ts": $api_v2_server_activity_join_community,
"./routes/api/v2/server/activity/join/group.ts": $api_v2_server_activity_join_group,
"./routes/api/v2/server/activity/read/message.ts": $api_v2_server_activity_read_message,
"./routes/api/v2/server/activity/read/request.ts": $api_v2_server_activity_read_request,
"./routes/api/v2/server/activity/req/friend.ts": $api_v2_server_activity_req_friend,
"./routes/api/v2/server/activity/talk/audio.ts": $api_v2_server_activity_talk_audio,
"./routes/api/v2/server/activity/talk/image.ts": $api_v2_server_activity_talk_image,
"./routes/api/v2/server/activity/talk/text.ts": $api_v2_server_activity_talk_text,
"./routes/api/v2/server/activity/talk/video.ts": $api_v2_server_activity_talk_video,
"./routes/api/v2/server/activity/update/profile.ts": $api_v2_server_activity_update_profile,
"./routes/api/v2/server/activity/update/text.ts": $api_v2_server_activity_update_text,
"./routes/api/v2/server/blocked.ts": $api_v2_server_blocked,
"./routes/api/v2/server/info.ts": $api_v2_server_info,
"./routes/api/v2/server/information/users/[ID]/icon/friend.ts": $api_v2_server_information_users_ID_icon_friend,
"./routes/api/v2/server/information/users/[ID]/icon/friendcode.ts": $api_v2_server_information_users_ID_icon_friendcode,
"./routes/api/v2/server/information/users/[ID]/icon/group.ts": $api_v2_server_information_users_ID_icon_group,
"./routes/api/v2/server/information/users/[ID]/name.ts": $api_v2_server_information_users_ID_name,
"./routes/api/v2/server/information/users/[ID]/uuid.ts": $api_v2_server_information_users_ID_uuid,
"./routes/api/v2/server/information/users/profile.ts": $api_v2_server_information_users_profile,
"./routes/api/v2/server/pubkey.ts": $api_v2_server_pubkey,
"./routes/home/[roomid].tsx": $home_roomid_,
"./routes/home/index.tsx": $home_index,
"./routes/index.tsx": $index,
Expand Down
19 changes: 19 additions & 0 deletions models/activity.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import mongoose from "mongoose"

export const activitySchama = new mongoose.Schema({
userid: {
type: String,
},
activity: {
type: String,
required: true,
enum: ["login", "logout", "register", "delete", "update","accept","group","block","create","delete","flag","ignore","invite","join","read","req","talk","update"],
},
activityObject: {
type: Object,
required: true,
},
timestamp: { type: Date, default: Date.now, expires: 60 * 60 * 24 },
})
const activity = mongoose.model("activity", activitySchama)
export default activity
20 changes: 20 additions & 0 deletions models/friendconfig.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import mongoose from "mongoose"

export const friendConfigSchama = new mongoose.Schema({
userid: {
type: String,
required: true,
unique: true,
},
addFriendById: {
type: Boolean,
required: true,
},
blockUsers: [String],
allowOtherServerUsers: {
type: Boolean,
required: true,
},
})
const friendConfig = mongoose.model("friendconfig", friendConfigSchama)
export default friendConfig
29 changes: 0 additions & 29 deletions models/users.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,35 +72,6 @@ const usersSchema = new mongoose.Schema({
addFriendKey: {
type: String,
},
config: {
type: {
theme: {
type: String,
enum: ["light", "dark"],
default: "light",
},
language: {
type: String,
enum: ["ja", "en"],
default: "ja",
},
notification: {
type: Boolean,
default: true,
},
//外部サーバーのユーザーを許可するかどうか
allowOtherUser: {
type: Boolean,
default: true,
},
//idによる友達追加を許可するかどうか
allowAddFriendByID: {
type: Boolean,
default: true,
},
//
},
},
timestamp: { type: Date, default: Date.now },
})
const users = mongoose.model("users", usersSchema)
Expand Down
5 changes: 4 additions & 1 deletion routes/api/v2/client/block/server.ts
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
//
//サーバーをブロックする
//POST /api/v2/client/block/server
// { domain: string, csrftoken: string }
// -> { status: boolean, message: string }
4 changes: 4 additions & 0 deletions routes/api/v2/client/block/user.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
//ユーザーをブロックする
//POST: /api/v2/client/block/user
// { userid: string, csrftoken: string }
// -> { status: boolean, message: string }
3 changes: 3 additions & 0 deletions routes/api/v2/client/csrftoken.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
//csrftokenを発行
// GET /api/v2/client/csrftoken
// -> { status: boolean, message: string, csrftoken: string }
4 changes: 4 additions & 0 deletions routes/api/v2/client/friends/info/[ID]/icon/friend.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
//友達のアイコンを取得
// GET /api/v2/client/friends/info/:id/icon/friend
// { uuid: string }
// -> { status: boolean, message: string, icon: any }
4 changes: 4 additions & 0 deletions routes/api/v2/client/friends/info/[ID]/icon/friendcode.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
//addfriendkeyを利用してフレンドのアイコンを取得する
// GET /api/v2/client/friends/info/:id/icon/friend
// { addFriendKey: string }
// -> { status: boolean, message: string, icon: any }
4 changes: 4 additions & 0 deletions routes/api/v2/client/friends/info/[ID]/icon/group.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
//グループチャットの友達のアイコンを取得する
// GET /api/v2/client/friends/info/:id/icon/group
// { groupid: string, uuid: string }
// -> { status: boolean, message: string, icon: any }
4 changes: 4 additions & 0 deletions routes/api/v2/client/friends/info/[ID]/profile/friend.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
//友達のプロフィールを取得
// GET /api/v2/client/friends/info/:id/profile/friend
// { uuid: string, requirement: object }
// -> { status: boolean, message: string, profile: Profile }
4 changes: 4 additions & 0 deletions routes/api/v2/client/friends/info/[ID]/profile/friendcode.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
//フレンドコードを使用してプロフィールを取得する
// GET /api/v2/client/friends/info/:id/profile/friendcode
// { addFriendKey: string }
// -> { status: boolean, message: string, profile: Profile }
4 changes: 4 additions & 0 deletions routes/api/v2/client/friends/info/[ID]/profile/group.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
//グループのメンバーの情報を取得
// GET /api/v2/client/friends/info/:id/profile/group
// { groupid: string, uuid: string }
// -> { status: boolean, message: string, profile: Profile }
3 changes: 3 additions & 0 deletions routes/api/v2/client/friends/list.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
//友達の情報のオブジェクトを配列で返す
//GET /api/v2/client/friends/list
// -> { status: boolean, message: string, friends: [{userName, nickName,latestMessage,latestMessageTime}] }
1 change: 1 addition & 0 deletions routes/api/v2/client/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
//websocket
4 changes: 4 additions & 0 deletions routes/api/v2/client/sessions/login.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
//ログインしてcookieをセットする
// POST /api/v2/client/sessions/login
// { email?: string, userName?: string, password: string}
// -> { status: boolean, message: string } cookie: sessionid=string; path=/; max-age=number; httpOnly; SameSite=Strict;
3 changes: 3 additions & 0 deletions routes/api/v2/client/sessions/logout.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
//sessionidを削除してcookieを削除する
// POST /api/v2/client/sessions/logout
// -> { status: boolean, message: string }
4 changes: 4 additions & 0 deletions routes/api/v2/client/sessions/registers/auth.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
//本登録するapi
//POST /api/v2/client/sessions/registers/auth
// { email: string, password: string, nickName: string,age: string, token: string, recaptcha: string }
// -> { status: boolean, message: string }
Loading

0 comments on commit 055dd20

Please sign in to comment.