mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-09-29 06:43:17 -05:00
plus server type definitions and models
This commit is contained in:
11
models/ballot.js
Normal file
11
models/ballot.js
Normal file
@@ -0,0 +1,11 @@
|
||||
const mongoose = require("mongoose")
|
||||
|
||||
const ballotSchema = new mongoose.Schema({
|
||||
discord_id: { type: String, required: true },
|
||||
plus_server: { type: String, required: true },
|
||||
month: { type: Number, required: true },
|
||||
year: { type: Number, required: true },
|
||||
votes: { type: [mongoose.Schema.Types.ObjectId], required: true },
|
||||
})
|
||||
|
||||
module.exports = mongoose.model("BallotPerson", ballotSchema)
|
||||
11
models/suggested.js
Normal file
11
models/suggested.js
Normal file
@@ -0,0 +1,11 @@
|
||||
const mongoose = require("mongoose")
|
||||
|
||||
const suggestedSchema = new mongoose.Schema({
|
||||
discord_id: { type: String, required: true },
|
||||
suggester_discord_id: { type: String, required: true },
|
||||
plus_region: { type: String, required: true },
|
||||
plus_server: { type: String, required: true },
|
||||
description: { type: String, required: true },
|
||||
})
|
||||
|
||||
module.exports = mongoose.model("Suggested", suggestedSchema)
|
||||
13
models/summary.js
Normal file
13
models/summary.js
Normal file
@@ -0,0 +1,13 @@
|
||||
const mongoose = require("mongoose")
|
||||
|
||||
const summarySchema = new mongoose.Schema({
|
||||
discord_id: { type: String, required: true },
|
||||
suggester_discord_id: String,
|
||||
voucher_discord_id: String,
|
||||
plus_server: { type: String, required: true },
|
||||
month: { type: Number, required: true },
|
||||
year: { type: Number, required: true },
|
||||
score: { type: Number, required: true },
|
||||
})
|
||||
|
||||
module.exports = mongoose.model("SummaryPerson", summarySchema)
|
||||
@@ -13,6 +13,13 @@ const userSchema = new mongoose.Schema({
|
||||
},
|
||||
weapons: [String],
|
||||
top500: Boolean,
|
||||
plus: {
|
||||
membership_status: String,
|
||||
vouch_status: String,
|
||||
plus_region: String,
|
||||
can_vouch: Boolean,
|
||||
last_vouched: Date,
|
||||
},
|
||||
})
|
||||
|
||||
module.exports = mongoose.model("User", userSchema)
|
||||
|
||||
11
models/votedperson.js
Normal file
11
models/votedperson.js
Normal file
@@ -0,0 +1,11 @@
|
||||
const mongoose = require("mongoose")
|
||||
|
||||
const votedPersonSchema = new mongoose.Schema({
|
||||
discord_id: { type: String, required: true },
|
||||
voter_discord_id: { type: String, required: true },
|
||||
score: { type: Number, required: true },
|
||||
month: { type: Number, required: true },
|
||||
year: { type: Number, required: true },
|
||||
})
|
||||
|
||||
module.exports = mongoose.model("VotedPerson", votedPersonSchema)
|
||||
@@ -12,6 +12,7 @@ const { Link, linkResolvers } = require("./schemas/link")
|
||||
const { Trend, trendResolvers } = require("./schemas/trend")
|
||||
const { Tournament, tournamentResolvers } = require("./schemas/tournament")
|
||||
const { FAPost, faPostResolvers } = require("./schemas/fapost")
|
||||
const { Plus, plusResolvers } = require("./schemas/plus")
|
||||
|
||||
const Query = gql`
|
||||
type Query {
|
||||
@@ -41,6 +42,7 @@ const schema = makeExecutableSchema({
|
||||
Trend,
|
||||
Tournament,
|
||||
FAPost,
|
||||
Plus,
|
||||
],
|
||||
resolvers: merge(
|
||||
resolvers,
|
||||
@@ -53,7 +55,8 @@ const schema = makeExecutableSchema({
|
||||
linkResolvers,
|
||||
trendResolvers,
|
||||
tournamentResolvers,
|
||||
faPostResolvers
|
||||
faPostResolvers,
|
||||
plusResolvers
|
||||
),
|
||||
})
|
||||
|
||||
|
||||
51
schemas/plus.js
Normal file
51
schemas/plus.js
Normal file
@@ -0,0 +1,51 @@
|
||||
const { UserInputError, gql } = require("apollo-server-express")
|
||||
const Ballot = require("../models/ballot")
|
||||
const Suggested = require("../models/suggested")
|
||||
const Summary = require("../models/summary")
|
||||
const VotedPerson = require("../models/votedperson")
|
||||
|
||||
const typeDef = gql`
|
||||
type Suggested {
|
||||
discord_id: String!
|
||||
suggester_discord_id: String!
|
||||
plus_region: PlusRegion!
|
||||
plus_server: PlusServer!
|
||||
description: String!
|
||||
}
|
||||
|
||||
type VotedPerson {
|
||||
discord_id: String!
|
||||
voter_discord_id: String!
|
||||
month: Int!
|
||||
year: Int!
|
||||
"Voting result -2 to +2 (-1 to +1 cross-region)"
|
||||
score: Float!
|
||||
}
|
||||
|
||||
type Ballot {
|
||||
discord_id: String!
|
||||
plus_server: PlusServer!
|
||||
month: Int!
|
||||
year: Int!
|
||||
votes: [VotedPerson!]!
|
||||
}
|
||||
|
||||
"Voting result of a player"
|
||||
type Summary {
|
||||
discord_id: String!
|
||||
suggester_discord_id: String
|
||||
voucher_discord_id: String
|
||||
plus_server: PlusServer!
|
||||
month: Int!
|
||||
year: Int!
|
||||
"Average of all scores of the voters for the month -100% to 100%"
|
||||
score: Float!
|
||||
}
|
||||
`
|
||||
|
||||
const resolvers = {}
|
||||
|
||||
module.exports = {
|
||||
Plus: typeDef,
|
||||
plusResolvers: resolvers,
|
||||
}
|
||||
@@ -20,11 +20,34 @@ const typeDef = gql`
|
||||
weapons: [String]
|
||||
): Boolean
|
||||
}
|
||||
|
||||
"The control sensitivity used in Splatoon 2"
|
||||
type Sens {
|
||||
stick: Float
|
||||
motion: Float
|
||||
}
|
||||
|
||||
"+1 or +2 LFG server on Discord"
|
||||
enum PlusServer {
|
||||
ONE
|
||||
TWO
|
||||
}
|
||||
|
||||
"Region used for voting"
|
||||
enum PlusRegion {
|
||||
EU
|
||||
NA
|
||||
}
|
||||
|
||||
"Status with +1 and +2 related things"
|
||||
type PlusStatus {
|
||||
membership_status: PlusServer
|
||||
vouch_status: PlusServer
|
||||
plus_region: PlusRegion
|
||||
can_vouch: Boolean
|
||||
last_vouched: String
|
||||
}
|
||||
|
||||
"Represents user account. Also includes info regarding solo ladder."
|
||||
type User {
|
||||
id: ID!
|
||||
@@ -40,6 +63,7 @@ const typeDef = gql`
|
||||
sens: Sens
|
||||
weapons: [String]!
|
||||
top500: Boolean!
|
||||
plus: PlusStatus
|
||||
}
|
||||
`
|
||||
const resolvers = {
|
||||
|
||||
Reference in New Issue
Block a user