rpc

package
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 28, 2023 License: MIT Imports: 0 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SubmissionStatusSubmitted SubmissionStatus = 1
	SubmissionStatusExecuting SubmissionStatus = 2
	SubmissionStatusFinished  SubmissionStatus = 3

	SubmissionResultOK                  SubmissionResult = 1
	SubmissionResultCompileError        SubmissionResult = 2
	SubmissionResultRuntimeError        SubmissionResult = 3
	SubmissionResultTimeLimitExceeded   SubmissionResult = 4
	SubmissionResultMemoryLimitExceed   SubmissionResult = 5
	SubmissionResultWrongAnswer         SubmissionResult = 6
	SubmissionResultUnsupportedLanguage SubmissionResult = 7
)

Variables

This section is empty.

Functions

This section is empty.

Types

type API

type API interface {
	GetServerInfo(GetServerInfoRequest) GetServerInfoResponse

	CreateAccount(CreateAccountRequest) CreateAccountResponse
	GetAccountList(GetAccountListRequest) GetAccountListResponse
	GetAccount(GetAccountRequest) GetAccountResponse
	UpdateAccount(UpdateAccountRequest) UpdateAccountResponse

	CreateSession(CreateSessionRequest) CreateSessionResponse
	GetSession(GetSessionRequest) GetSessionResponse
	DeleteSession(DeleteSessionRequest) DeleteSessionResponse

	CreateProblem(CreateProblemRequest) CreateProblemResponse
	GetProblemSnippetList(GetProblemSnippetListRequest) GetProblemSnippetListResponse
	GetProblem(GetProblemRequest) GetProblemResponse
	UpdateProblem(UpdateProblemRequest) UpdateProblemResponse
	DeleteProblem(DeleteProblemRequest) DeleteProblemResponse

	CreateTestCase(CreateTestCaseRequest) CreateTestCaseResponse
	CreateTestCaseList(CreateTestCaseListRequest) CreateTestCaseListResponse
	GetProblemTestCaseSnippetList(GetProblemTestCaseSnippetListRequest) GetProblemTestCaseSnippetListResponse
	GetTestCase(GetTestCaseRequest) GetTestCaseResponse
	UpdateTestCase(UpdateTestCaseRequest) UpdateTestCaseResponse
	DeleteTestCase(DeleteTestCaseRequest) DeleteTestCaseResponse

	GetAccountProblemSnippetList(GetAccountProblemSnippetListRequest) GetAccountProblemSnippetListResponse

	CreateSubmission(CreateSubmissionRequest) CreateSubmissionResponse
	GetSubmissionSnippetList(GetSubmissionSnippetListRequest) GetSubmissionSnippetListResponse
	GetSubmission(GetSubmissionRequest) GetSubmissionResponse
	UpdateSubmission(UpdateSubmissionRequest) UpdateSubmissionResponse
	DeleteSubmission(DeleteSubmissionRequest) DeleteSubmissionResponse

	GetAccountSubmissionSnippetList(GetAccountSubmissionSnippetListRequest) GetAccountSubmissionSnippetListResponse
	GetProblemSubmissionSnippetList(GetProblemSubmissionSnippetListRequest) GetProblemSubmissionSnippetListResponse
	GetAccountProblemSubmissionSnippetList(
		GetAccountProblemSubmissionSnippetListRequest,
	) GetAccountProblemSubmissionSnippetListResponse

	GetAndUpdateFirstSubmittedSubmissionToExecuting(
		GetAndUpdateFirstSubmittedSubmissionToExecutingRequest,
	) GetAndUpdateFirstSubmittedSubmissionToExecutingResponse

	UpdateSetting(UpdateSettingRequest) UpdateSettingResponse
}

type Account

type Account struct {
	ID          uint64
	AccountName string `validate:"alphanum,min=6,max=32"`
	DisplayName string `validate:"min=1,max=32"`
	Role        string `validate:"oneof=admin problem_setter contestant worker"`
}

type AccountRole

type AccountRole string
const (
	AccountRoleAdmin         AccountRole = "admin"
	AccountRoleProblemSetter AccountRole = "problem_setter"
	AccountRoleContestant    AccountRole = "contestant"
	AccountRoleWorker        AccountRole = "worker"
)

type AccountSetting added in v1.2.0

type AccountSetting struct {
	DisableAccountCreation                 bool `json:"DisableAccountCreation"`
	DisableAccountUpdate                   bool `json:"DisableAccountUpdate"`
	DisableSessionCreationForContestant    bool `json:"DisableSessionCreationForContestant"`
	DisableSessionCreationForProblemSetter bool `json:"DisableSessionCreationForProblemSetter"`
}

type CreateAccountRequest

type CreateAccountRequest struct {
	AccountName string `validate:"alphanum,min=6,max=32"`
	DisplayName string `validate:"min=1,max=32"`
	Role        string `validate:"oneof=admin problem_setter contestant worker"`
	Password    string `validate:"min=8"`
}

type CreateAccountResponse

type CreateAccountResponse struct {
	Account Account
}

type CreateProblemRequest

type CreateProblemRequest struct {
	DisplayName            string           `validate:"min=1,max=256"`
	Description            string           `validate:"max=5000"`
	TimeLimitInMillisecond uint64           `validate:"max=10000"`
	MemoryLimitInByte      uint64           `validate:"max=8589934592"`
	ExampleList            []ProblemExample `validate:"max=5"`
}

type CreateProblemResponse

type CreateProblemResponse struct {
	Problem Problem
}

type CreateSessionRequest

type CreateSessionRequest struct {
	AccountName string `validate:"alphanum,min=6,max=32"`
	Password    string `validate:"min=8"`
}

type CreateSessionResponse

type CreateSessionResponse struct {
	Account Account
	Token   string
}

type CreateSubmissionRequest

type CreateSubmissionRequest struct {
	ProblemUUID string
	Content     string `validate:"min=1,max=64000"`
	Language    string `validate:"max=32"`
}

type CreateSubmissionResponse

type CreateSubmissionResponse struct {
	SubmissionSnippet SubmissionSnippet
}

type CreateTestCaseListRequest

type CreateTestCaseListRequest struct {
	ProblemUUID    string
	ZippedTestData string `validate:"max=5242880"`
}

type CreateTestCaseListResponse

type CreateTestCaseListResponse struct{}

type CreateTestCaseRequest

type CreateTestCaseRequest struct {
	ProblemUUID string
	Input       string `validate:"max=5242880"`
	Output      string `validate:"max=5242880"`
	IsHidden    bool
}

type CreateTestCaseResponse

type CreateTestCaseResponse struct {
	TestCaseSnippet TestCaseSnippet
}

type DeleteProblemRequest

type DeleteProblemRequest struct {
	UUID string
}

type DeleteProblemResponse

type DeleteProblemResponse struct{}

type DeleteSessionRequest

type DeleteSessionRequest struct{}

type DeleteSessionResponse

type DeleteSessionResponse struct{}

type DeleteSubmissionRequest

type DeleteSubmissionRequest struct {
	ID uint64
}

type DeleteSubmissionResponse

type DeleteSubmissionResponse struct{}

type DeleteTestCaseRequest

type DeleteTestCaseRequest struct {
	UUID string
}

type DeleteTestCaseResponse

type DeleteTestCaseResponse struct{}

type ErrorCode

type ErrorCode int
const (
	ErrorCodeOK                 ErrorCode = 1
	ErrorCodeCanceled           ErrorCode = 2
	ErrorCodeUnknown            ErrorCode = 3
	ErrorCodeInvalidArgument    ErrorCode = 4
	ErrorCodeDeadlineExceeded   ErrorCode = 5
	ErrorCodeNotFound           ErrorCode = 6
	ErrorCodeAlreadyExists      ErrorCode = 7
	ErrorCodePermissionDenied   ErrorCode = 8
	ErrorCodeResourceExhausted  ErrorCode = 9
	ErrorCodeFailedPrecondition ErrorCode = 10
	ErrorCodeAborted            ErrorCode = 11
	ErrorCodeOutOfRange         ErrorCode = 12
	ErrorCodeUnimplemented      ErrorCode = 13
	ErrorCodeInternal           ErrorCode = 14
	ErrorCodeUnavailable        ErrorCode = 15
	ErrorCodeDataLoss           ErrorCode = 16
	ErrorCodeUnauthenticated    ErrorCode = 17
)

type GetAccountListRequest

type GetAccountListRequest struct {
	Offset uint64
	Limit  uint64 `validate:"max=100"`
}

type GetAccountListResponse

type GetAccountListResponse struct {
	TotalAccountCount uint64
	AccountList       []Account
}

type GetAccountProblemSnippetListRequest

type GetAccountProblemSnippetListRequest struct {
	AccountID uint64
	Offset    uint64
	Limit     uint64 `validate:"max=100"`
}

type GetAccountProblemSnippetListResponse

type GetAccountProblemSnippetListResponse struct {
	TotalProblemCount  uint64
	ProblemSnippetList []ProblemSnippet
}

type GetAccountProblemSubmissionSnippetListRequest

type GetAccountProblemSubmissionSnippetListRequest struct {
	AccountID   uint64
	ProblemUUID string
	Offset      uint64
	Limit       uint64 `validate:"max=100"`
}

type GetAccountProblemSubmissionSnippetListResponse

type GetAccountProblemSubmissionSnippetListResponse struct {
	TotalSubmissionCount  uint64
	SubmissionSnippetList []SubmissionSnippet
}

type GetAccountRequest

type GetAccountRequest struct {
	ID uint64
}

type GetAccountResponse

type GetAccountResponse struct {
	Account Account
}

type GetAccountSubmissionSnippetListRequest

type GetAccountSubmissionSnippetListRequest struct {
	AccountID uint64
	Offset    uint64
	Limit     uint64 `validate:"max=100"`
}

type GetAccountSubmissionSnippetListResponse

type GetAccountSubmissionSnippetListResponse struct {
	TotalSubmissionCount  uint64
	SubmissionSnippetList []SubmissionSnippet
}

type GetAndUpdateFirstSubmittedSubmissionToExecutingRequest

type GetAndUpdateFirstSubmittedSubmissionToExecutingRequest struct{}

type GetAndUpdateFirstSubmittedSubmissionToExecutingResponse

type GetAndUpdateFirstSubmittedSubmissionToExecutingResponse struct {
	Submission Submission
}

type GetProblemRequest

type GetProblemRequest struct {
	UUID string
}

type GetProblemResponse

type GetProblemResponse struct {
	Problem Problem
}

type GetProblemSnippetListRequest

type GetProblemSnippetListRequest struct {
	Offset uint64
	Limit  uint64 `validate:"max=100"`
}

type GetProblemSnippetListResponse

type GetProblemSnippetListResponse struct {
	TotalProblemCount  uint64
	ProblemSnippetList []ProblemSnippet
}

type GetProblemSubmissionSnippetListRequest

type GetProblemSubmissionSnippetListRequest struct {
	ProblemUUID string
	Offset      uint64
	Limit       uint64 `validate:"max=100"`
}

type GetProblemSubmissionSnippetListResponse

type GetProblemSubmissionSnippetListResponse struct {
	TotalSubmissionCount  uint64
	SubmissionSnippetList []SubmissionSnippet
}

type GetProblemTestCaseSnippetListRequest

type GetProblemTestCaseSnippetListRequest struct {
	ProblemUUID string
	Offset      uint64
	Limit       uint64 `validate:"max=100"`
}

type GetProblemTestCaseSnippetListResponse

type GetProblemTestCaseSnippetListResponse struct {
	TotalTestCaseCount  uint64
	TestCaseSnippetList []TestCaseSnippet
}

type GetServerInfoRequest

type GetServerInfoRequest struct{}

type GetServerInfoResponse

type GetServerInfoResponse struct {
	IsDistributed         bool
	SupportedLanguageList []Language
	Setting               Setting
}

type GetSessionRequest

type GetSessionRequest struct{}

type GetSessionResponse

type GetSessionResponse struct {
	Account Account
}

type GetSubmissionRequest

type GetSubmissionRequest struct {
	ID uint64
}

type GetSubmissionResponse

type GetSubmissionResponse struct {
	Submission Submission
}

type GetSubmissionSnippetListRequest

type GetSubmissionSnippetListRequest struct {
	Offset uint64
	Limit  uint64 `validate:"max=100"`
}

type GetSubmissionSnippetListResponse

type GetSubmissionSnippetListResponse struct {
	TotalSubmissionCount  uint64
	SubmissionSnippetList []SubmissionSnippet
}

type GetTestCaseRequest

type GetTestCaseRequest struct {
	UUID string
}

type GetTestCaseResponse

type GetTestCaseResponse struct {
	TestCase TestCase
}

type Language

type Language struct {
	Value string
	Name  string
}

type Problem

type Problem struct {
	UUID                   string
	DisplayName            string `validate:"min=1,max=256"`
	Author                 Account
	Description            string           `validate:"max=5000"`
	TimeLimitInMillisecond uint64           `validate:"max=10000"`
	MemoryLimitInByte      uint64           `validate:"max=8589934592"`
	ExampleList            []ProblemExample `validate:"max=5"`
	CreatedTime            uint64
	UpdatedTime            uint64
	TestCaseHash           string
}

type ProblemExample

type ProblemExample struct {
	Input  string `validate:"max=5000"`
	Output string `validate:"max=5000"`
}

type ProblemSetting added in v1.2.0

type ProblemSetting struct {
	DisableProblemCreation bool `json:"DisableProblemCreation"`
	DisableProblemUpdate   bool `json:"DisableProblemUpdate"`
}

type ProblemSnippet

type ProblemSnippet struct {
	UUID                   string
	DisplayName            string `validate:"min=1,max=256"`
	Author                 Account
	TimeLimitInMillisecond uint64 `validate:"max=10000"`
	MemoryLimitInByte      uint64 `validate:"max=8589934592"`
	CreatedTime            uint64
	UpdatedTime            uint64
}

type Setting added in v1.2.0

type Setting struct {
	Account    AccountSetting    `json:"Account"`
	Problem    ProblemSetting    `json:"Problem"`
	Submission SubmissionSetting `json:"Submission"`
}

type Submission

type Submission struct {
	ID          uint64
	Problem     SubmissionProblemSnippet
	Author      Account
	Content     string `validate:"min=1,max=64000"`
	Language    string `validate:"max=32"`
	Status      uint8  `validate:"oneof=1 2 3"`
	Result      uint8  `validate:"oneof=1 2 3 4 5 6 7"`
	CreatedTime uint64
}

type SubmissionProblemSnippet

type SubmissionProblemSnippet struct {
	UUID        string
	DisplayName string
}

type SubmissionResult

type SubmissionResult uint8

type SubmissionSetting added in v1.2.0

type SubmissionSetting struct {
	DisableSubmissionCreation bool `json:"DisableSubmissionCreation"`
}

type SubmissionSnippet

type SubmissionSnippet struct {
	ID          uint64
	Problem     SubmissionProblemSnippet
	Author      Account
	Language    string `validate:"max=32"`
	Status      uint8  `validate:"oneof=1 2 3"`
	Result      uint8  `validate:"oneof=1 2 3 4 5 6 7"`
	CreatedTime uint64
}

type SubmissionStatus

type SubmissionStatus uint8

type TestCase

type TestCase struct {
	UUID     string
	Input    string `validate:"max=5242880"`
	Output   string `validate:"max=5242880"`
	IsHidden bool
}

type TestCaseSnippet

type TestCaseSnippet struct {
	UUID     string
	Input    string `validate:"max=100"`
	Output   string `validate:"max=100"`
	IsHidden bool
}

type UpdateAccountRequest

type UpdateAccountRequest struct {
	ID          uint64
	DisplayName *string `validate:"omitnil,min=1,max=32"`
	Role        *string `validate:"omitnil,oneof=admin problem_setter contestant worker"`
	Password    *string `validate:"omitnil,min=8"`
}

type UpdateAccountResponse

type UpdateAccountResponse struct {
	Account Account
}

type UpdateProblemRequest

type UpdateProblemRequest struct {
	UUID                   string
	DisplayName            *string           `omitnil,validate:"min=1,max=256"`
	Description            *string           `omitnil,validate:"max=5000"`
	TimeLimitInMillisecond *uint64           `omitnil,validate:"max=10000"`
	MemoryLimitInByte      *uint64           `omitnil,validate:"max=8589934592"`
	ExampleList            *[]ProblemExample `omitnil,validate:"max=5"`
}

type UpdateProblemResponse

type UpdateProblemResponse struct {
	Problem Problem
}

type UpdateSettingRequest added in v1.2.0

type UpdateSettingRequest struct {
	Setting Setting
}

type UpdateSettingResponse added in v1.2.0

type UpdateSettingResponse struct {
	Setting Setting
}

type UpdateSubmissionRequest

type UpdateSubmissionRequest struct {
	ID     uint64
	Status uint8 `validate:"oneof=1 2 3"`
	Result uint8 `validate:"oneof=1 2 3 4 5 6 7"`
}

type UpdateSubmissionResponse

type UpdateSubmissionResponse struct {
	SubmissionSnippet SubmissionSnippet
}

type UpdateTestCaseRequest

type UpdateTestCaseRequest struct {
	UUID     string
	Input    *string `validate:"omitnil,max=5242880"`
	Output   *string `validate:"omitnil,max=5242880"`
	IsHidden *bool
}

type UpdateTestCaseResponse

type UpdateTestCaseResponse struct {
	TestCaseSnippet TestCaseSnippet
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL