generated from rmcguire/go-server-with-otel
	implement class logo
This commit is contained in:
		
							
								
								
									
										7
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
								
							@@ -8,9 +8,12 @@
 | 
			
		||||
			"request": "launch",
 | 
			
		||||
			"program": "${workspaceFolder}",
 | 
			
		||||
			"env": {
 | 
			
		||||
				"APP_NAME": "Go HTTP with OTEL"
 | 
			
		||||
				"APP_NAME": "Class GRPC Server"
 | 
			
		||||
			},
 | 
			
		||||
			"args": []
 | 
			
		||||
			"args": [
 | 
			
		||||
				"-config",
 | 
			
		||||
				"config.yaml"
 | 
			
		||||
			]
 | 
			
		||||
		}
 | 
			
		||||
	]
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Makefile
									
									
									
									
									
								
							@@ -4,7 +4,7 @@ CMD_NAME := go-server-with-otel
 | 
			
		||||
VERSION ?= development
 | 
			
		||||
API_DIR := api/
 | 
			
		||||
SCHEMA_DIR := contrib/
 | 
			
		||||
PROTO_DIRS := $(wildcard proto/demo/app/*) # TODO: Update path (probably not demo)
 | 
			
		||||
PROTO_FILES := $(shell find proto -name '*.proto' -not -path 'proto/google/*')
 | 
			
		||||
PLATFORMS := linux/amd64 linux/arm64 darwin/amd64 darwin/arm64
 | 
			
		||||
OUTPUT_DIR := bin
 | 
			
		||||
VER_PKG := gitea.libretechconsulting.com/rmcguire/go-app/pkg/config.Version
 | 
			
		||||
@@ -20,7 +20,7 @@ proto: check_protoc $(API_DIR)
 | 
			
		||||
		--openapiv2_out=$(SCHEMA_DIR) \
 | 
			
		||||
		--openapiv2_opt allow_merge=true \
 | 
			
		||||
		--openapiv2_opt merge_file_name=$(CMD_NAME) \
 | 
			
		||||
		$(foreach dir, $(PROTO_DIRS), $(wildcard $(dir)/*.proto))
 | 
			
		||||
		$(PROTO_FILES)
 | 
			
		||||
 | 
			
		||||
test:
 | 
			
		||||
	go test -v ./...
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										840
									
								
								api/class/v1alpha1/class.pb.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										840
									
								
								api/class/v1alpha1/class.pb.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,840 @@
 | 
			
		||||
// Code generated by protoc-gen-go. DO NOT EDIT.
 | 
			
		||||
// versions:
 | 
			
		||||
// 	protoc-gen-go v1.36.6
 | 
			
		||||
// 	protoc        v5.29.3
 | 
			
		||||
// source: class/v1alpha1/class.proto
 | 
			
		||||
 | 
			
		||||
package class
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	_ "google.golang.org/genproto/googleapis/api/annotations"
 | 
			
		||||
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
 | 
			
		||||
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
 | 
			
		||||
	reflect "reflect"
 | 
			
		||||
	sync "sync"
 | 
			
		||||
	unsafe "unsafe"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	// Verify that this generated code is sufficiently up-to-date.
 | 
			
		||||
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
 | 
			
		||||
	// Verify that runtime/protoimpl is sufficiently up-to-date.
 | 
			
		||||
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Font int32
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	Font_FONT_UNSPECIFIED  Font = 0
 | 
			
		||||
	Font_FONT_3X5          Font = 2
 | 
			
		||||
	Font_FONT_5LINEOBLIQUE Font = 3
 | 
			
		||||
	Font_FONT_ACROBATIC    Font = 4
 | 
			
		||||
	Font_FONT_ALLIGATOR    Font = 5
 | 
			
		||||
	Font_FONT_ALLIGATOR2   Font = 6
 | 
			
		||||
	Font_FONT_ALPHABET     Font = 7
 | 
			
		||||
	Font_FONT_AVATAR       Font = 8
 | 
			
		||||
	Font_FONT_BANNER       Font = 9
 | 
			
		||||
	Font_FONT_BANNER3      Font = 11
 | 
			
		||||
	Font_FONT_BANNER4      Font = 12
 | 
			
		||||
	Font_FONT_BARBWIRE     Font = 13
 | 
			
		||||
	Font_FONT_BASIC        Font = 14
 | 
			
		||||
	Font_FONT_BELL         Font = 15
 | 
			
		||||
	Font_FONT_BIG          Font = 16
 | 
			
		||||
	Font_FONT_BIGCHIEF     Font = 17
 | 
			
		||||
	Font_FONT_BINARY       Font = 18
 | 
			
		||||
	Font_FONT_BLOCK        Font = 19
 | 
			
		||||
	Font_FONT_BUBBLE       Font = 20
 | 
			
		||||
	Font_FONT_BULBHEAD     Font = 21
 | 
			
		||||
	Font_FONT_CALGPHY2     Font = 22
 | 
			
		||||
	Font_FONT_CALIGRAPHY   Font = 23
 | 
			
		||||
	Font_FONT_CATWALK      Font = 24
 | 
			
		||||
	Font_FONT_CHUNKY       Font = 25
 | 
			
		||||
	Font_FONT_COINSTAK     Font = 26
 | 
			
		||||
	Font_FONT_COLOSSAL     Font = 27
 | 
			
		||||
	Font_FONT_COMPUTER     Font = 28
 | 
			
		||||
	Font_FONT_CONTESSA     Font = 29
 | 
			
		||||
	Font_FONT_CONTRAST     Font = 30
 | 
			
		||||
	Font_FONT_COSMIC       Font = 31
 | 
			
		||||
	Font_FONT_COSMIKE      Font = 32
 | 
			
		||||
	Font_FONT_CRICKET      Font = 33
 | 
			
		||||
	Font_FONT_CURSIVE      Font = 34
 | 
			
		||||
	Font_FONT_CYBERLARGE   Font = 35
 | 
			
		||||
	Font_FONT_CYBERMEDIUM  Font = 36
 | 
			
		||||
	Font_FONT_CYBERSMALL   Font = 37
 | 
			
		||||
	Font_FONT_DIAMOND      Font = 38
 | 
			
		||||
	Font_FONT_DIGITAL      Font = 39
 | 
			
		||||
	Font_FONT_DOH          Font = 40
 | 
			
		||||
	Font_FONT_DOOM         Font = 41
 | 
			
		||||
	Font_FONT_DOTMATRIX    Font = 42
 | 
			
		||||
	Font_FONT_DRPEPPER     Font = 43
 | 
			
		||||
	Font_FONT_EFTICHESS    Font = 44
 | 
			
		||||
	Font_FONT_EFTIFONT     Font = 45
 | 
			
		||||
	Font_FONT_EFTIPITI     Font = 46
 | 
			
		||||
	Font_FONT_EFTIROBOT    Font = 47
 | 
			
		||||
	Font_FONT_EFTITALIC    Font = 48
 | 
			
		||||
	Font_FONT_EFTIWALL     Font = 49
 | 
			
		||||
	Font_FONT_EFTIWATER    Font = 50
 | 
			
		||||
	Font_FONT_EPIC         Font = 51
 | 
			
		||||
	Font_FONT_FENDER       Font = 52
 | 
			
		||||
	Font_FONT_FOURTOPS     Font = 53
 | 
			
		||||
	Font_FONT_FUZZY        Font = 54
 | 
			
		||||
	Font_FONT_GOOFY        Font = 55
 | 
			
		||||
	Font_FONT_GOTHIC       Font = 56
 | 
			
		||||
	Font_FONT_GRAFFITI     Font = 57
 | 
			
		||||
	Font_FONT_HOLLYWOOD    Font = 58
 | 
			
		||||
	Font_FONT_INVITA       Font = 59
 | 
			
		||||
	Font_FONT_ISOMETRIC1   Font = 60
 | 
			
		||||
	Font_FONT_ISOMETRIC2   Font = 61
 | 
			
		||||
	Font_FONT_ISOMETRIC3   Font = 62
 | 
			
		||||
	Font_FONT_ISOMETRIC4   Font = 63
 | 
			
		||||
	Font_FONT_ITALIC       Font = 64
 | 
			
		||||
	Font_FONT_IVRIT        Font = 65
 | 
			
		||||
	Font_FONT_JAZMINE      Font = 66
 | 
			
		||||
	Font_FONT_JERUSALEM    Font = 67
 | 
			
		||||
	Font_FONT_KATAKANA     Font = 68
 | 
			
		||||
	Font_FONT_KBAN         Font = 69
 | 
			
		||||
	Font_FONT_LARRY3D      Font = 70
 | 
			
		||||
	Font_FONT_LCD          Font = 71
 | 
			
		||||
	Font_FONT_LEAN         Font = 72
 | 
			
		||||
	Font_FONT_LETTERS      Font = 73
 | 
			
		||||
	Font_FONT_LINUX        Font = 74
 | 
			
		||||
	Font_FONT_LOCKERGNOME  Font = 75
 | 
			
		||||
	Font_FONT_MADRID       Font = 76
 | 
			
		||||
	Font_FONT_MARQUEE      Font = 77
 | 
			
		||||
	Font_FONT_MAXFOUR      Font = 78
 | 
			
		||||
	Font_FONT_MIKE         Font = 79
 | 
			
		||||
	Font_FONT_MINI         Font = 80
 | 
			
		||||
	Font_FONT_MIRROR       Font = 81
 | 
			
		||||
	Font_FONT_MNEMONIC     Font = 82
 | 
			
		||||
	Font_FONT_MORSE        Font = 83
 | 
			
		||||
	Font_FONT_MOSCOW       Font = 84
 | 
			
		||||
	Font_FONT_NANCYJ       Font = 87
 | 
			
		||||
	Font_FONT_NIPPLES      Font = 88
 | 
			
		||||
	Font_FONT_NTGREEK      Font = 89
 | 
			
		||||
	Font_FONT_O8           Font = 90
 | 
			
		||||
	Font_FONT_OGRE         Font = 91
 | 
			
		||||
	Font_FONT_PAWP         Font = 92
 | 
			
		||||
	Font_FONT_PEAKS        Font = 93
 | 
			
		||||
	Font_FONT_PEBBLES      Font = 94
 | 
			
		||||
	Font_FONT_PEPPER       Font = 95
 | 
			
		||||
	Font_FONT_POISON       Font = 96
 | 
			
		||||
	Font_FONT_PUFFY        Font = 97
 | 
			
		||||
	Font_FONT_PYRAMID      Font = 98
 | 
			
		||||
	Font_FONT_RECTANGLES   Font = 99
 | 
			
		||||
	Font_FONT_RELIEF       Font = 100
 | 
			
		||||
	Font_FONT_RELIEF2      Font = 101
 | 
			
		||||
	Font_FONT_REV          Font = 102
 | 
			
		||||
	Font_FONT_ROMAN        Font = 103
 | 
			
		||||
	Font_FONT_ROT13        Font = 104
 | 
			
		||||
	Font_FONT_ROUNDED      Font = 105
 | 
			
		||||
	Font_FONT_ROWANCAP     Font = 106
 | 
			
		||||
	Font_FONT_ROZZO        Font = 107
 | 
			
		||||
	Font_FONT_RUNIC        Font = 108
 | 
			
		||||
	Font_FONT_RUNYC        Font = 109
 | 
			
		||||
	Font_FONT_SBLOOD       Font = 110
 | 
			
		||||
	Font_FONT_SCRIPT       Font = 111
 | 
			
		||||
	Font_FONT_SERIFCAP     Font = 112
 | 
			
		||||
	Font_FONT_SHADOW       Font = 113
 | 
			
		||||
	Font_FONT_SHORT        Font = 114
 | 
			
		||||
	Font_FONT_SLANT        Font = 115
 | 
			
		||||
	Font_FONT_SLIDE        Font = 116
 | 
			
		||||
	Font_FONT_SLSCRIPT     Font = 117
 | 
			
		||||
	Font_FONT_SMALL        Font = 118
 | 
			
		||||
	Font_FONT_SMISOME1     Font = 119
 | 
			
		||||
	Font_FONT_SMKEYBOARD   Font = 120
 | 
			
		||||
	Font_FONT_SMSCRIPT     Font = 121
 | 
			
		||||
	Font_FONT_SMSHADOW     Font = 122
 | 
			
		||||
	Font_FONT_SMSLANT      Font = 123
 | 
			
		||||
	Font_FONT_SMTENGWAR    Font = 124
 | 
			
		||||
	Font_FONT_SPEED        Font = 125
 | 
			
		||||
	Font_FONT_STAMPATELLO  Font = 126
 | 
			
		||||
	Font_FONT_STANDARD     Font = 127
 | 
			
		||||
	Font_FONT_STARWARS     Font = 128
 | 
			
		||||
	Font_FONT_STELLAR      Font = 129
 | 
			
		||||
	Font_FONT_STOP         Font = 130
 | 
			
		||||
	Font_FONT_STRAIGHT     Font = 131
 | 
			
		||||
	Font_FONT_TANJA        Font = 132
 | 
			
		||||
	Font_FONT_TENGWAR      Font = 133
 | 
			
		||||
	Font_FONT_TERM         Font = 134
 | 
			
		||||
	Font_FONT_THICK        Font = 135
 | 
			
		||||
	Font_FONT_THIN         Font = 136
 | 
			
		||||
	Font_FONT_THREEPOINT   Font = 137
 | 
			
		||||
	Font_FONT_TICKS        Font = 138
 | 
			
		||||
	Font_FONT_TICKSSLANT   Font = 139
 | 
			
		||||
	Font_FONT_TOMBSTONE    Font = 141
 | 
			
		||||
	Font_FONT_TREK         Font = 142
 | 
			
		||||
	Font_FONT_TSALAGI      Font = 143
 | 
			
		||||
	Font_FONT_TWOPOINT     Font = 144
 | 
			
		||||
	Font_FONT_UNIVERS      Font = 145
 | 
			
		||||
	Font_FONT_USAFLAG      Font = 146
 | 
			
		||||
	Font_FONT_WAVY         Font = 147
 | 
			
		||||
	Font_FONT_WEIRD        Font = 148
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Enum value maps for Font.
 | 
			
		||||
var (
 | 
			
		||||
	Font_name = map[int32]string{
 | 
			
		||||
		0:   "FONT_UNSPECIFIED",
 | 
			
		||||
		2:   "FONT_3X5",
 | 
			
		||||
		3:   "FONT_5LINEOBLIQUE",
 | 
			
		||||
		4:   "FONT_ACROBATIC",
 | 
			
		||||
		5:   "FONT_ALLIGATOR",
 | 
			
		||||
		6:   "FONT_ALLIGATOR2",
 | 
			
		||||
		7:   "FONT_ALPHABET",
 | 
			
		||||
		8:   "FONT_AVATAR",
 | 
			
		||||
		9:   "FONT_BANNER",
 | 
			
		||||
		11:  "FONT_BANNER3",
 | 
			
		||||
		12:  "FONT_BANNER4",
 | 
			
		||||
		13:  "FONT_BARBWIRE",
 | 
			
		||||
		14:  "FONT_BASIC",
 | 
			
		||||
		15:  "FONT_BELL",
 | 
			
		||||
		16:  "FONT_BIG",
 | 
			
		||||
		17:  "FONT_BIGCHIEF",
 | 
			
		||||
		18:  "FONT_BINARY",
 | 
			
		||||
		19:  "FONT_BLOCK",
 | 
			
		||||
		20:  "FONT_BUBBLE",
 | 
			
		||||
		21:  "FONT_BULBHEAD",
 | 
			
		||||
		22:  "FONT_CALGPHY2",
 | 
			
		||||
		23:  "FONT_CALIGRAPHY",
 | 
			
		||||
		24:  "FONT_CATWALK",
 | 
			
		||||
		25:  "FONT_CHUNKY",
 | 
			
		||||
		26:  "FONT_COINSTAK",
 | 
			
		||||
		27:  "FONT_COLOSSAL",
 | 
			
		||||
		28:  "FONT_COMPUTER",
 | 
			
		||||
		29:  "FONT_CONTESSA",
 | 
			
		||||
		30:  "FONT_CONTRAST",
 | 
			
		||||
		31:  "FONT_COSMIC",
 | 
			
		||||
		32:  "FONT_COSMIKE",
 | 
			
		||||
		33:  "FONT_CRICKET",
 | 
			
		||||
		34:  "FONT_CURSIVE",
 | 
			
		||||
		35:  "FONT_CYBERLARGE",
 | 
			
		||||
		36:  "FONT_CYBERMEDIUM",
 | 
			
		||||
		37:  "FONT_CYBERSMALL",
 | 
			
		||||
		38:  "FONT_DIAMOND",
 | 
			
		||||
		39:  "FONT_DIGITAL",
 | 
			
		||||
		40:  "FONT_DOH",
 | 
			
		||||
		41:  "FONT_DOOM",
 | 
			
		||||
		42:  "FONT_DOTMATRIX",
 | 
			
		||||
		43:  "FONT_DRPEPPER",
 | 
			
		||||
		44:  "FONT_EFTICHESS",
 | 
			
		||||
		45:  "FONT_EFTIFONT",
 | 
			
		||||
		46:  "FONT_EFTIPITI",
 | 
			
		||||
		47:  "FONT_EFTIROBOT",
 | 
			
		||||
		48:  "FONT_EFTITALIC",
 | 
			
		||||
		49:  "FONT_EFTIWALL",
 | 
			
		||||
		50:  "FONT_EFTIWATER",
 | 
			
		||||
		51:  "FONT_EPIC",
 | 
			
		||||
		52:  "FONT_FENDER",
 | 
			
		||||
		53:  "FONT_FOURTOPS",
 | 
			
		||||
		54:  "FONT_FUZZY",
 | 
			
		||||
		55:  "FONT_GOOFY",
 | 
			
		||||
		56:  "FONT_GOTHIC",
 | 
			
		||||
		57:  "FONT_GRAFFITI",
 | 
			
		||||
		58:  "FONT_HOLLYWOOD",
 | 
			
		||||
		59:  "FONT_INVITA",
 | 
			
		||||
		60:  "FONT_ISOMETRIC1",
 | 
			
		||||
		61:  "FONT_ISOMETRIC2",
 | 
			
		||||
		62:  "FONT_ISOMETRIC3",
 | 
			
		||||
		63:  "FONT_ISOMETRIC4",
 | 
			
		||||
		64:  "FONT_ITALIC",
 | 
			
		||||
		65:  "FONT_IVRIT",
 | 
			
		||||
		66:  "FONT_JAZMINE",
 | 
			
		||||
		67:  "FONT_JERUSALEM",
 | 
			
		||||
		68:  "FONT_KATAKANA",
 | 
			
		||||
		69:  "FONT_KBAN",
 | 
			
		||||
		70:  "FONT_LARRY3D",
 | 
			
		||||
		71:  "FONT_LCD",
 | 
			
		||||
		72:  "FONT_LEAN",
 | 
			
		||||
		73:  "FONT_LETTERS",
 | 
			
		||||
		74:  "FONT_LINUX",
 | 
			
		||||
		75:  "FONT_LOCKERGNOME",
 | 
			
		||||
		76:  "FONT_MADRID",
 | 
			
		||||
		77:  "FONT_MARQUEE",
 | 
			
		||||
		78:  "FONT_MAXFOUR",
 | 
			
		||||
		79:  "FONT_MIKE",
 | 
			
		||||
		80:  "FONT_MINI",
 | 
			
		||||
		81:  "FONT_MIRROR",
 | 
			
		||||
		82:  "FONT_MNEMONIC",
 | 
			
		||||
		83:  "FONT_MORSE",
 | 
			
		||||
		84:  "FONT_MOSCOW",
 | 
			
		||||
		87:  "FONT_NANCYJ",
 | 
			
		||||
		88:  "FONT_NIPPLES",
 | 
			
		||||
		89:  "FONT_NTGREEK",
 | 
			
		||||
		90:  "FONT_O8",
 | 
			
		||||
		91:  "FONT_OGRE",
 | 
			
		||||
		92:  "FONT_PAWP",
 | 
			
		||||
		93:  "FONT_PEAKS",
 | 
			
		||||
		94:  "FONT_PEBBLES",
 | 
			
		||||
		95:  "FONT_PEPPER",
 | 
			
		||||
		96:  "FONT_POISON",
 | 
			
		||||
		97:  "FONT_PUFFY",
 | 
			
		||||
		98:  "FONT_PYRAMID",
 | 
			
		||||
		99:  "FONT_RECTANGLES",
 | 
			
		||||
		100: "FONT_RELIEF",
 | 
			
		||||
		101: "FONT_RELIEF2",
 | 
			
		||||
		102: "FONT_REV",
 | 
			
		||||
		103: "FONT_ROMAN",
 | 
			
		||||
		104: "FONT_ROT13",
 | 
			
		||||
		105: "FONT_ROUNDED",
 | 
			
		||||
		106: "FONT_ROWANCAP",
 | 
			
		||||
		107: "FONT_ROZZO",
 | 
			
		||||
		108: "FONT_RUNIC",
 | 
			
		||||
		109: "FONT_RUNYC",
 | 
			
		||||
		110: "FONT_SBLOOD",
 | 
			
		||||
		111: "FONT_SCRIPT",
 | 
			
		||||
		112: "FONT_SERIFCAP",
 | 
			
		||||
		113: "FONT_SHADOW",
 | 
			
		||||
		114: "FONT_SHORT",
 | 
			
		||||
		115: "FONT_SLANT",
 | 
			
		||||
		116: "FONT_SLIDE",
 | 
			
		||||
		117: "FONT_SLSCRIPT",
 | 
			
		||||
		118: "FONT_SMALL",
 | 
			
		||||
		119: "FONT_SMISOME1",
 | 
			
		||||
		120: "FONT_SMKEYBOARD",
 | 
			
		||||
		121: "FONT_SMSCRIPT",
 | 
			
		||||
		122: "FONT_SMSHADOW",
 | 
			
		||||
		123: "FONT_SMSLANT",
 | 
			
		||||
		124: "FONT_SMTENGWAR",
 | 
			
		||||
		125: "FONT_SPEED",
 | 
			
		||||
		126: "FONT_STAMPATELLO",
 | 
			
		||||
		127: "FONT_STANDARD",
 | 
			
		||||
		128: "FONT_STARWARS",
 | 
			
		||||
		129: "FONT_STELLAR",
 | 
			
		||||
		130: "FONT_STOP",
 | 
			
		||||
		131: "FONT_STRAIGHT",
 | 
			
		||||
		132: "FONT_TANJA",
 | 
			
		||||
		133: "FONT_TENGWAR",
 | 
			
		||||
		134: "FONT_TERM",
 | 
			
		||||
		135: "FONT_THICK",
 | 
			
		||||
		136: "FONT_THIN",
 | 
			
		||||
		137: "FONT_THREEPOINT",
 | 
			
		||||
		138: "FONT_TICKS",
 | 
			
		||||
		139: "FONT_TICKSSLANT",
 | 
			
		||||
		141: "FONT_TOMBSTONE",
 | 
			
		||||
		142: "FONT_TREK",
 | 
			
		||||
		143: "FONT_TSALAGI",
 | 
			
		||||
		144: "FONT_TWOPOINT",
 | 
			
		||||
		145: "FONT_UNIVERS",
 | 
			
		||||
		146: "FONT_USAFLAG",
 | 
			
		||||
		147: "FONT_WAVY",
 | 
			
		||||
		148: "FONT_WEIRD",
 | 
			
		||||
	}
 | 
			
		||||
	Font_value = map[string]int32{
 | 
			
		||||
		"FONT_UNSPECIFIED":  0,
 | 
			
		||||
		"FONT_3X5":          2,
 | 
			
		||||
		"FONT_5LINEOBLIQUE": 3,
 | 
			
		||||
		"FONT_ACROBATIC":    4,
 | 
			
		||||
		"FONT_ALLIGATOR":    5,
 | 
			
		||||
		"FONT_ALLIGATOR2":   6,
 | 
			
		||||
		"FONT_ALPHABET":     7,
 | 
			
		||||
		"FONT_AVATAR":       8,
 | 
			
		||||
		"FONT_BANNER":       9,
 | 
			
		||||
		"FONT_BANNER3":      11,
 | 
			
		||||
		"FONT_BANNER4":      12,
 | 
			
		||||
		"FONT_BARBWIRE":     13,
 | 
			
		||||
		"FONT_BASIC":        14,
 | 
			
		||||
		"FONT_BELL":         15,
 | 
			
		||||
		"FONT_BIG":          16,
 | 
			
		||||
		"FONT_BIGCHIEF":     17,
 | 
			
		||||
		"FONT_BINARY":       18,
 | 
			
		||||
		"FONT_BLOCK":        19,
 | 
			
		||||
		"FONT_BUBBLE":       20,
 | 
			
		||||
		"FONT_BULBHEAD":     21,
 | 
			
		||||
		"FONT_CALGPHY2":     22,
 | 
			
		||||
		"FONT_CALIGRAPHY":   23,
 | 
			
		||||
		"FONT_CATWALK":      24,
 | 
			
		||||
		"FONT_CHUNKY":       25,
 | 
			
		||||
		"FONT_COINSTAK":     26,
 | 
			
		||||
		"FONT_COLOSSAL":     27,
 | 
			
		||||
		"FONT_COMPUTER":     28,
 | 
			
		||||
		"FONT_CONTESSA":     29,
 | 
			
		||||
		"FONT_CONTRAST":     30,
 | 
			
		||||
		"FONT_COSMIC":       31,
 | 
			
		||||
		"FONT_COSMIKE":      32,
 | 
			
		||||
		"FONT_CRICKET":      33,
 | 
			
		||||
		"FONT_CURSIVE":      34,
 | 
			
		||||
		"FONT_CYBERLARGE":   35,
 | 
			
		||||
		"FONT_CYBERMEDIUM":  36,
 | 
			
		||||
		"FONT_CYBERSMALL":   37,
 | 
			
		||||
		"FONT_DIAMOND":      38,
 | 
			
		||||
		"FONT_DIGITAL":      39,
 | 
			
		||||
		"FONT_DOH":          40,
 | 
			
		||||
		"FONT_DOOM":         41,
 | 
			
		||||
		"FONT_DOTMATRIX":    42,
 | 
			
		||||
		"FONT_DRPEPPER":     43,
 | 
			
		||||
		"FONT_EFTICHESS":    44,
 | 
			
		||||
		"FONT_EFTIFONT":     45,
 | 
			
		||||
		"FONT_EFTIPITI":     46,
 | 
			
		||||
		"FONT_EFTIROBOT":    47,
 | 
			
		||||
		"FONT_EFTITALIC":    48,
 | 
			
		||||
		"FONT_EFTIWALL":     49,
 | 
			
		||||
		"FONT_EFTIWATER":    50,
 | 
			
		||||
		"FONT_EPIC":         51,
 | 
			
		||||
		"FONT_FENDER":       52,
 | 
			
		||||
		"FONT_FOURTOPS":     53,
 | 
			
		||||
		"FONT_FUZZY":        54,
 | 
			
		||||
		"FONT_GOOFY":        55,
 | 
			
		||||
		"FONT_GOTHIC":       56,
 | 
			
		||||
		"FONT_GRAFFITI":     57,
 | 
			
		||||
		"FONT_HOLLYWOOD":    58,
 | 
			
		||||
		"FONT_INVITA":       59,
 | 
			
		||||
		"FONT_ISOMETRIC1":   60,
 | 
			
		||||
		"FONT_ISOMETRIC2":   61,
 | 
			
		||||
		"FONT_ISOMETRIC3":   62,
 | 
			
		||||
		"FONT_ISOMETRIC4":   63,
 | 
			
		||||
		"FONT_ITALIC":       64,
 | 
			
		||||
		"FONT_IVRIT":        65,
 | 
			
		||||
		"FONT_JAZMINE":      66,
 | 
			
		||||
		"FONT_JERUSALEM":    67,
 | 
			
		||||
		"FONT_KATAKANA":     68,
 | 
			
		||||
		"FONT_KBAN":         69,
 | 
			
		||||
		"FONT_LARRY3D":      70,
 | 
			
		||||
		"FONT_LCD":          71,
 | 
			
		||||
		"FONT_LEAN":         72,
 | 
			
		||||
		"FONT_LETTERS":      73,
 | 
			
		||||
		"FONT_LINUX":        74,
 | 
			
		||||
		"FONT_LOCKERGNOME":  75,
 | 
			
		||||
		"FONT_MADRID":       76,
 | 
			
		||||
		"FONT_MARQUEE":      77,
 | 
			
		||||
		"FONT_MAXFOUR":      78,
 | 
			
		||||
		"FONT_MIKE":         79,
 | 
			
		||||
		"FONT_MINI":         80,
 | 
			
		||||
		"FONT_MIRROR":       81,
 | 
			
		||||
		"FONT_MNEMONIC":     82,
 | 
			
		||||
		"FONT_MORSE":        83,
 | 
			
		||||
		"FONT_MOSCOW":       84,
 | 
			
		||||
		"FONT_NANCYJ":       87,
 | 
			
		||||
		"FONT_NIPPLES":      88,
 | 
			
		||||
		"FONT_NTGREEK":      89,
 | 
			
		||||
		"FONT_O8":           90,
 | 
			
		||||
		"FONT_OGRE":         91,
 | 
			
		||||
		"FONT_PAWP":         92,
 | 
			
		||||
		"FONT_PEAKS":        93,
 | 
			
		||||
		"FONT_PEBBLES":      94,
 | 
			
		||||
		"FONT_PEPPER":       95,
 | 
			
		||||
		"FONT_POISON":       96,
 | 
			
		||||
		"FONT_PUFFY":        97,
 | 
			
		||||
		"FONT_PYRAMID":      98,
 | 
			
		||||
		"FONT_RECTANGLES":   99,
 | 
			
		||||
		"FONT_RELIEF":       100,
 | 
			
		||||
		"FONT_RELIEF2":      101,
 | 
			
		||||
		"FONT_REV":          102,
 | 
			
		||||
		"FONT_ROMAN":        103,
 | 
			
		||||
		"FONT_ROT13":        104,
 | 
			
		||||
		"FONT_ROUNDED":      105,
 | 
			
		||||
		"FONT_ROWANCAP":     106,
 | 
			
		||||
		"FONT_ROZZO":        107,
 | 
			
		||||
		"FONT_RUNIC":        108,
 | 
			
		||||
		"FONT_RUNYC":        109,
 | 
			
		||||
		"FONT_SBLOOD":       110,
 | 
			
		||||
		"FONT_SCRIPT":       111,
 | 
			
		||||
		"FONT_SERIFCAP":     112,
 | 
			
		||||
		"FONT_SHADOW":       113,
 | 
			
		||||
		"FONT_SHORT":        114,
 | 
			
		||||
		"FONT_SLANT":        115,
 | 
			
		||||
		"FONT_SLIDE":        116,
 | 
			
		||||
		"FONT_SLSCRIPT":     117,
 | 
			
		||||
		"FONT_SMALL":        118,
 | 
			
		||||
		"FONT_SMISOME1":     119,
 | 
			
		||||
		"FONT_SMKEYBOARD":   120,
 | 
			
		||||
		"FONT_SMSCRIPT":     121,
 | 
			
		||||
		"FONT_SMSHADOW":     122,
 | 
			
		||||
		"FONT_SMSLANT":      123,
 | 
			
		||||
		"FONT_SMTENGWAR":    124,
 | 
			
		||||
		"FONT_SPEED":        125,
 | 
			
		||||
		"FONT_STAMPATELLO":  126,
 | 
			
		||||
		"FONT_STANDARD":     127,
 | 
			
		||||
		"FONT_STARWARS":     128,
 | 
			
		||||
		"FONT_STELLAR":      129,
 | 
			
		||||
		"FONT_STOP":         130,
 | 
			
		||||
		"FONT_STRAIGHT":     131,
 | 
			
		||||
		"FONT_TANJA":        132,
 | 
			
		||||
		"FONT_TENGWAR":      133,
 | 
			
		||||
		"FONT_TERM":         134,
 | 
			
		||||
		"FONT_THICK":        135,
 | 
			
		||||
		"FONT_THIN":         136,
 | 
			
		||||
		"FONT_THREEPOINT":   137,
 | 
			
		||||
		"FONT_TICKS":        138,
 | 
			
		||||
		"FONT_TICKSSLANT":   139,
 | 
			
		||||
		"FONT_TOMBSTONE":    141,
 | 
			
		||||
		"FONT_TREK":         142,
 | 
			
		||||
		"FONT_TSALAGI":      143,
 | 
			
		||||
		"FONT_TWOPOINT":     144,
 | 
			
		||||
		"FONT_UNIVERS":      145,
 | 
			
		||||
		"FONT_USAFLAG":      146,
 | 
			
		||||
		"FONT_WAVY":         147,
 | 
			
		||||
		"FONT_WEIRD":        148,
 | 
			
		||||
	}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (x Font) Enum() *Font {
 | 
			
		||||
	p := new(Font)
 | 
			
		||||
	*p = x
 | 
			
		||||
	return p
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x Font) String() string {
 | 
			
		||||
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (Font) Descriptor() protoreflect.EnumDescriptor {
 | 
			
		||||
	return file_class_v1alpha1_class_proto_enumTypes[0].Descriptor()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (Font) Type() protoreflect.EnumType {
 | 
			
		||||
	return &file_class_v1alpha1_class_proto_enumTypes[0]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x Font) Number() protoreflect.EnumNumber {
 | 
			
		||||
	return protoreflect.EnumNumber(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use Font.Descriptor instead.
 | 
			
		||||
func (Font) EnumDescriptor() ([]byte, []int) {
 | 
			
		||||
	return file_class_v1alpha1_class_proto_rawDescGZIP(), []int{0}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GetClassLogoRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState `protogen:"open.v1"`
 | 
			
		||||
	Font          Font                   `protobuf:"varint,1,opt,name=font,proto3,enum=class.v1alpha1.Font" json:"font,omitempty"`
 | 
			
		||||
	IncludeString *bool                  `protobuf:"varint,2,opt,name=include_string,json=includeString,proto3,oneof" json:"include_string,omitempty"`
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *GetClassLogoRequest) Reset() {
 | 
			
		||||
	*x = GetClassLogoRequest{}
 | 
			
		||||
	mi := &file_class_v1alpha1_class_proto_msgTypes[0]
 | 
			
		||||
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
	ms.StoreMessageInfo(mi)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *GetClassLogoRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*GetClassLogoRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *GetClassLogoRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_class_v1alpha1_class_proto_msgTypes[0]
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use GetClassLogoRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*GetClassLogoRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_class_v1alpha1_class_proto_rawDescGZIP(), []int{0}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *GetClassLogoRequest) GetFont() Font {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.Font
 | 
			
		||||
	}
 | 
			
		||||
	return Font_FONT_UNSPECIFIED
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *GetClassLogoRequest) GetIncludeString() bool {
 | 
			
		||||
	if x != nil && x.IncludeString != nil {
 | 
			
		||||
		return *x.IncludeString
 | 
			
		||||
	}
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type GetClassLogoResponse struct {
 | 
			
		||||
	state         protoimpl.MessageState `protogen:"open.v1"`
 | 
			
		||||
	LogoBytes     []byte                 `protobuf:"bytes,1,opt,name=logo_bytes,json=logoBytes,proto3" json:"logo_bytes,omitempty"`
 | 
			
		||||
	LogoString    string                 `protobuf:"bytes,2,opt,name=logo_string,json=logoString,proto3" json:"logo_string,omitempty"`
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *GetClassLogoResponse) Reset() {
 | 
			
		||||
	*x = GetClassLogoResponse{}
 | 
			
		||||
	mi := &file_class_v1alpha1_class_proto_msgTypes[1]
 | 
			
		||||
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
	ms.StoreMessageInfo(mi)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *GetClassLogoResponse) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*GetClassLogoResponse) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *GetClassLogoResponse) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_class_v1alpha1_class_proto_msgTypes[1]
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use GetClassLogoResponse.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*GetClassLogoResponse) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_class_v1alpha1_class_proto_rawDescGZIP(), []int{1}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *GetClassLogoResponse) GetLogoBytes() []byte {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.LogoBytes
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *GetClassLogoResponse) GetLogoString() string {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.LogoString
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var File_class_v1alpha1_class_proto protoreflect.FileDescriptor
 | 
			
		||||
 | 
			
		||||
const file_class_v1alpha1_class_proto_rawDesc = "" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"\x1aclass/v1alpha1/class.proto\x12\x0eclass.v1alpha1\x1a\x1cgoogle/api/annotations.proto\"~\n" +
 | 
			
		||||
	"\x13GetClassLogoRequest\x12(\n" +
 | 
			
		||||
	"\x04font\x18\x01 \x01(\x0e2\x14.class.v1alpha1.FontR\x04font\x12*\n" +
 | 
			
		||||
	"\x0einclude_string\x18\x02 \x01(\bH\x00R\rincludeString\x88\x01\x01B\x11\n" +
 | 
			
		||||
	"\x0f_include_string\"V\n" +
 | 
			
		||||
	"\x14GetClassLogoResponse\x12\x1d\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"logo_bytes\x18\x01 \x01(\fR\tlogoBytes\x12\x1f\n" +
 | 
			
		||||
	"\vlogo_string\x18\x02 \x01(\tR\n" +
 | 
			
		||||
	"logoString*\xa0\x14\n" +
 | 
			
		||||
	"\x04Font\x12\x14\n" +
 | 
			
		||||
	"\x10FONT_UNSPECIFIED\x10\x00\x12\f\n" +
 | 
			
		||||
	"\bFONT_3X5\x10\x02\x12\x15\n" +
 | 
			
		||||
	"\x11FONT_5LINEOBLIQUE\x10\x03\x12\x12\n" +
 | 
			
		||||
	"\x0eFONT_ACROBATIC\x10\x04\x12\x12\n" +
 | 
			
		||||
	"\x0eFONT_ALLIGATOR\x10\x05\x12\x13\n" +
 | 
			
		||||
	"\x0fFONT_ALLIGATOR2\x10\x06\x12\x11\n" +
 | 
			
		||||
	"\rFONT_ALPHABET\x10\a\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_AVATAR\x10\b\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_BANNER\x10\t\x12\x10\n" +
 | 
			
		||||
	"\fFONT_BANNER3\x10\v\x12\x10\n" +
 | 
			
		||||
	"\fFONT_BANNER4\x10\f\x12\x11\n" +
 | 
			
		||||
	"\rFONT_BARBWIRE\x10\r\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_BASIC\x10\x0e\x12\r\n" +
 | 
			
		||||
	"\tFONT_BELL\x10\x0f\x12\f\n" +
 | 
			
		||||
	"\bFONT_BIG\x10\x10\x12\x11\n" +
 | 
			
		||||
	"\rFONT_BIGCHIEF\x10\x11\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_BINARY\x10\x12\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_BLOCK\x10\x13\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_BUBBLE\x10\x14\x12\x11\n" +
 | 
			
		||||
	"\rFONT_BULBHEAD\x10\x15\x12\x11\n" +
 | 
			
		||||
	"\rFONT_CALGPHY2\x10\x16\x12\x13\n" +
 | 
			
		||||
	"\x0fFONT_CALIGRAPHY\x10\x17\x12\x10\n" +
 | 
			
		||||
	"\fFONT_CATWALK\x10\x18\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_CHUNKY\x10\x19\x12\x11\n" +
 | 
			
		||||
	"\rFONT_COINSTAK\x10\x1a\x12\x11\n" +
 | 
			
		||||
	"\rFONT_COLOSSAL\x10\x1b\x12\x11\n" +
 | 
			
		||||
	"\rFONT_COMPUTER\x10\x1c\x12\x11\n" +
 | 
			
		||||
	"\rFONT_CONTESSA\x10\x1d\x12\x11\n" +
 | 
			
		||||
	"\rFONT_CONTRAST\x10\x1e\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_COSMIC\x10\x1f\x12\x10\n" +
 | 
			
		||||
	"\fFONT_COSMIKE\x10 \x12\x10\n" +
 | 
			
		||||
	"\fFONT_CRICKET\x10!\x12\x10\n" +
 | 
			
		||||
	"\fFONT_CURSIVE\x10\"\x12\x13\n" +
 | 
			
		||||
	"\x0fFONT_CYBERLARGE\x10#\x12\x14\n" +
 | 
			
		||||
	"\x10FONT_CYBERMEDIUM\x10$\x12\x13\n" +
 | 
			
		||||
	"\x0fFONT_CYBERSMALL\x10%\x12\x10\n" +
 | 
			
		||||
	"\fFONT_DIAMOND\x10&\x12\x10\n" +
 | 
			
		||||
	"\fFONT_DIGITAL\x10'\x12\f\n" +
 | 
			
		||||
	"\bFONT_DOH\x10(\x12\r\n" +
 | 
			
		||||
	"\tFONT_DOOM\x10)\x12\x12\n" +
 | 
			
		||||
	"\x0eFONT_DOTMATRIX\x10*\x12\x11\n" +
 | 
			
		||||
	"\rFONT_DRPEPPER\x10+\x12\x12\n" +
 | 
			
		||||
	"\x0eFONT_EFTICHESS\x10,\x12\x11\n" +
 | 
			
		||||
	"\rFONT_EFTIFONT\x10-\x12\x11\n" +
 | 
			
		||||
	"\rFONT_EFTIPITI\x10.\x12\x12\n" +
 | 
			
		||||
	"\x0eFONT_EFTIROBOT\x10/\x12\x12\n" +
 | 
			
		||||
	"\x0eFONT_EFTITALIC\x100\x12\x11\n" +
 | 
			
		||||
	"\rFONT_EFTIWALL\x101\x12\x12\n" +
 | 
			
		||||
	"\x0eFONT_EFTIWATER\x102\x12\r\n" +
 | 
			
		||||
	"\tFONT_EPIC\x103\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_FENDER\x104\x12\x11\n" +
 | 
			
		||||
	"\rFONT_FOURTOPS\x105\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_FUZZY\x106\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_GOOFY\x107\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_GOTHIC\x108\x12\x11\n" +
 | 
			
		||||
	"\rFONT_GRAFFITI\x109\x12\x12\n" +
 | 
			
		||||
	"\x0eFONT_HOLLYWOOD\x10:\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_INVITA\x10;\x12\x13\n" +
 | 
			
		||||
	"\x0fFONT_ISOMETRIC1\x10<\x12\x13\n" +
 | 
			
		||||
	"\x0fFONT_ISOMETRIC2\x10=\x12\x13\n" +
 | 
			
		||||
	"\x0fFONT_ISOMETRIC3\x10>\x12\x13\n" +
 | 
			
		||||
	"\x0fFONT_ISOMETRIC4\x10?\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_ITALIC\x10@\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_IVRIT\x10A\x12\x10\n" +
 | 
			
		||||
	"\fFONT_JAZMINE\x10B\x12\x12\n" +
 | 
			
		||||
	"\x0eFONT_JERUSALEM\x10C\x12\x11\n" +
 | 
			
		||||
	"\rFONT_KATAKANA\x10D\x12\r\n" +
 | 
			
		||||
	"\tFONT_KBAN\x10E\x12\x10\n" +
 | 
			
		||||
	"\fFONT_LARRY3D\x10F\x12\f\n" +
 | 
			
		||||
	"\bFONT_LCD\x10G\x12\r\n" +
 | 
			
		||||
	"\tFONT_LEAN\x10H\x12\x10\n" +
 | 
			
		||||
	"\fFONT_LETTERS\x10I\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_LINUX\x10J\x12\x14\n" +
 | 
			
		||||
	"\x10FONT_LOCKERGNOME\x10K\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_MADRID\x10L\x12\x10\n" +
 | 
			
		||||
	"\fFONT_MARQUEE\x10M\x12\x10\n" +
 | 
			
		||||
	"\fFONT_MAXFOUR\x10N\x12\r\n" +
 | 
			
		||||
	"\tFONT_MIKE\x10O\x12\r\n" +
 | 
			
		||||
	"\tFONT_MINI\x10P\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_MIRROR\x10Q\x12\x11\n" +
 | 
			
		||||
	"\rFONT_MNEMONIC\x10R\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_MORSE\x10S\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_MOSCOW\x10T\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_NANCYJ\x10W\x12\x10\n" +
 | 
			
		||||
	"\fFONT_NIPPLES\x10X\x12\x10\n" +
 | 
			
		||||
	"\fFONT_NTGREEK\x10Y\x12\v\n" +
 | 
			
		||||
	"\aFONT_O8\x10Z\x12\r\n" +
 | 
			
		||||
	"\tFONT_OGRE\x10[\x12\r\n" +
 | 
			
		||||
	"\tFONT_PAWP\x10\\\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_PEAKS\x10]\x12\x10\n" +
 | 
			
		||||
	"\fFONT_PEBBLES\x10^\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_PEPPER\x10_\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_POISON\x10`\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_PUFFY\x10a\x12\x10\n" +
 | 
			
		||||
	"\fFONT_PYRAMID\x10b\x12\x13\n" +
 | 
			
		||||
	"\x0fFONT_RECTANGLES\x10c\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_RELIEF\x10d\x12\x10\n" +
 | 
			
		||||
	"\fFONT_RELIEF2\x10e\x12\f\n" +
 | 
			
		||||
	"\bFONT_REV\x10f\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_ROMAN\x10g\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_ROT13\x10h\x12\x10\n" +
 | 
			
		||||
	"\fFONT_ROUNDED\x10i\x12\x11\n" +
 | 
			
		||||
	"\rFONT_ROWANCAP\x10j\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_ROZZO\x10k\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_RUNIC\x10l\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_RUNYC\x10m\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_SBLOOD\x10n\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_SCRIPT\x10o\x12\x11\n" +
 | 
			
		||||
	"\rFONT_SERIFCAP\x10p\x12\x0f\n" +
 | 
			
		||||
	"\vFONT_SHADOW\x10q\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_SHORT\x10r\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_SLANT\x10s\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_SLIDE\x10t\x12\x11\n" +
 | 
			
		||||
	"\rFONT_SLSCRIPT\x10u\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_SMALL\x10v\x12\x11\n" +
 | 
			
		||||
	"\rFONT_SMISOME1\x10w\x12\x13\n" +
 | 
			
		||||
	"\x0fFONT_SMKEYBOARD\x10x\x12\x11\n" +
 | 
			
		||||
	"\rFONT_SMSCRIPT\x10y\x12\x11\n" +
 | 
			
		||||
	"\rFONT_SMSHADOW\x10z\x12\x10\n" +
 | 
			
		||||
	"\fFONT_SMSLANT\x10{\x12\x12\n" +
 | 
			
		||||
	"\x0eFONT_SMTENGWAR\x10|\x12\x0e\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_SPEED\x10}\x12\x14\n" +
 | 
			
		||||
	"\x10FONT_STAMPATELLO\x10~\x12\x11\n" +
 | 
			
		||||
	"\rFONT_STANDARD\x10\x7f\x12\x12\n" +
 | 
			
		||||
	"\rFONT_STARWARS\x10\x80\x01\x12\x11\n" +
 | 
			
		||||
	"\fFONT_STELLAR\x10\x81\x01\x12\x0e\n" +
 | 
			
		||||
	"\tFONT_STOP\x10\x82\x01\x12\x12\n" +
 | 
			
		||||
	"\rFONT_STRAIGHT\x10\x83\x01\x12\x0f\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_TANJA\x10\x84\x01\x12\x11\n" +
 | 
			
		||||
	"\fFONT_TENGWAR\x10\x85\x01\x12\x0e\n" +
 | 
			
		||||
	"\tFONT_TERM\x10\x86\x01\x12\x0f\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_THICK\x10\x87\x01\x12\x0e\n" +
 | 
			
		||||
	"\tFONT_THIN\x10\x88\x01\x12\x14\n" +
 | 
			
		||||
	"\x0fFONT_THREEPOINT\x10\x89\x01\x12\x0f\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_TICKS\x10\x8a\x01\x12\x14\n" +
 | 
			
		||||
	"\x0fFONT_TICKSSLANT\x10\x8b\x01\x12\x13\n" +
 | 
			
		||||
	"\x0eFONT_TOMBSTONE\x10\x8d\x01\x12\x0e\n" +
 | 
			
		||||
	"\tFONT_TREK\x10\x8e\x01\x12\x11\n" +
 | 
			
		||||
	"\fFONT_TSALAGI\x10\x8f\x01\x12\x12\n" +
 | 
			
		||||
	"\rFONT_TWOPOINT\x10\x90\x01\x12\x11\n" +
 | 
			
		||||
	"\fFONT_UNIVERS\x10\x91\x01\x12\x11\n" +
 | 
			
		||||
	"\fFONT_USAFLAG\x10\x92\x01\x12\x0e\n" +
 | 
			
		||||
	"\tFONT_WAVY\x10\x93\x01\x12\x0f\n" +
 | 
			
		||||
	"\n" +
 | 
			
		||||
	"FONT_WEIRD\x10\x94\x012\x87\x01\n" +
 | 
			
		||||
	"\fClassService\x12w\n" +
 | 
			
		||||
	"\fGetClassLogo\x12#.class.v1alpha1.GetClassLogoRequest\x1a$.class.v1alpha1.GetClassLogoResponse\"\x1c\x82\xd3\xe4\x93\x02\x16\x12\x14/v1alpha1/class/logoBHZFgitea.libretechconsulting.com/rmcguire/class-server/api/v1alpha1/classb\x06proto3"
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	file_class_v1alpha1_class_proto_rawDescOnce sync.Once
 | 
			
		||||
	file_class_v1alpha1_class_proto_rawDescData []byte
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func file_class_v1alpha1_class_proto_rawDescGZIP() []byte {
 | 
			
		||||
	file_class_v1alpha1_class_proto_rawDescOnce.Do(func() {
 | 
			
		||||
		file_class_v1alpha1_class_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_class_v1alpha1_class_proto_rawDesc), len(file_class_v1alpha1_class_proto_rawDesc)))
 | 
			
		||||
	})
 | 
			
		||||
	return file_class_v1alpha1_class_proto_rawDescData
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var file_class_v1alpha1_class_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
 | 
			
		||||
var file_class_v1alpha1_class_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
 | 
			
		||||
var file_class_v1alpha1_class_proto_goTypes = []any{
 | 
			
		||||
	(Font)(0),                    // 0: class.v1alpha1.Font
 | 
			
		||||
	(*GetClassLogoRequest)(nil),  // 1: class.v1alpha1.GetClassLogoRequest
 | 
			
		||||
	(*GetClassLogoResponse)(nil), // 2: class.v1alpha1.GetClassLogoResponse
 | 
			
		||||
}
 | 
			
		||||
var file_class_v1alpha1_class_proto_depIdxs = []int32{
 | 
			
		||||
	0, // 0: class.v1alpha1.GetClassLogoRequest.font:type_name -> class.v1alpha1.Font
 | 
			
		||||
	1, // 1: class.v1alpha1.ClassService.GetClassLogo:input_type -> class.v1alpha1.GetClassLogoRequest
 | 
			
		||||
	2, // 2: class.v1alpha1.ClassService.GetClassLogo:output_type -> class.v1alpha1.GetClassLogoResponse
 | 
			
		||||
	2, // [2:3] is the sub-list for method output_type
 | 
			
		||||
	1, // [1:2] is the sub-list for method input_type
 | 
			
		||||
	1, // [1:1] is the sub-list for extension type_name
 | 
			
		||||
	1, // [1:1] is the sub-list for extension extendee
 | 
			
		||||
	0, // [0:1] is the sub-list for field type_name
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func init() { file_class_v1alpha1_class_proto_init() }
 | 
			
		||||
func file_class_v1alpha1_class_proto_init() {
 | 
			
		||||
	if File_class_v1alpha1_class_proto != nil {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	file_class_v1alpha1_class_proto_msgTypes[0].OneofWrappers = []any{}
 | 
			
		||||
	type x struct{}
 | 
			
		||||
	out := protoimpl.TypeBuilder{
 | 
			
		||||
		File: protoimpl.DescBuilder{
 | 
			
		||||
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 | 
			
		||||
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_class_v1alpha1_class_proto_rawDesc), len(file_class_v1alpha1_class_proto_rawDesc)),
 | 
			
		||||
			NumEnums:      1,
 | 
			
		||||
			NumMessages:   2,
 | 
			
		||||
			NumExtensions: 0,
 | 
			
		||||
			NumServices:   1,
 | 
			
		||||
		},
 | 
			
		||||
		GoTypes:           file_class_v1alpha1_class_proto_goTypes,
 | 
			
		||||
		DependencyIndexes: file_class_v1alpha1_class_proto_depIdxs,
 | 
			
		||||
		EnumInfos:         file_class_v1alpha1_class_proto_enumTypes,
 | 
			
		||||
		MessageInfos:      file_class_v1alpha1_class_proto_msgTypes,
 | 
			
		||||
	}.Build()
 | 
			
		||||
	File_class_v1alpha1_class_proto = out.File
 | 
			
		||||
	file_class_v1alpha1_class_proto_goTypes = nil
 | 
			
		||||
	file_class_v1alpha1_class_proto_depIdxs = nil
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										163
									
								
								api/class/v1alpha1/class.pb.gw.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										163
									
								
								api/class/v1alpha1/class.pb.gw.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,163 @@
 | 
			
		||||
// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT.
 | 
			
		||||
// source: class/v1alpha1/class.proto
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Package class is a reverse proxy.
 | 
			
		||||
 | 
			
		||||
It translates gRPC into RESTful JSON APIs.
 | 
			
		||||
*/
 | 
			
		||||
package class
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"io"
 | 
			
		||||
	"net/http"
 | 
			
		||||
 | 
			
		||||
	"github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
 | 
			
		||||
	"github.com/grpc-ecosystem/grpc-gateway/v2/utilities"
 | 
			
		||||
	"google.golang.org/grpc"
 | 
			
		||||
	"google.golang.org/grpc/codes"
 | 
			
		||||
	"google.golang.org/grpc/grpclog"
 | 
			
		||||
	"google.golang.org/grpc/metadata"
 | 
			
		||||
	"google.golang.org/grpc/status"
 | 
			
		||||
	"google.golang.org/protobuf/proto"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Suppress "imported and not used" errors
 | 
			
		||||
var (
 | 
			
		||||
	_ codes.Code
 | 
			
		||||
	_ io.Reader
 | 
			
		||||
	_ status.Status
 | 
			
		||||
	_ = errors.New
 | 
			
		||||
	_ = runtime.String
 | 
			
		||||
	_ = utilities.NewDoubleArray
 | 
			
		||||
	_ = metadata.Join
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var filter_ClassService_GetClassLogo_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
 | 
			
		||||
 | 
			
		||||
func request_ClassService_GetClassLogo_0(ctx context.Context, marshaler runtime.Marshaler, client ClassServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 | 
			
		||||
	var (
 | 
			
		||||
		protoReq GetClassLogoRequest
 | 
			
		||||
		metadata runtime.ServerMetadata
 | 
			
		||||
	)
 | 
			
		||||
	io.Copy(io.Discard, req.Body)
 | 
			
		||||
	if err := req.ParseForm(); err != nil {
 | 
			
		||||
		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 | 
			
		||||
	}
 | 
			
		||||
	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ClassService_GetClassLogo_0); err != nil {
 | 
			
		||||
		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 | 
			
		||||
	}
 | 
			
		||||
	msg, err := client.GetClassLogo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
 | 
			
		||||
	return msg, metadata, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func local_request_ClassService_GetClassLogo_0(ctx context.Context, marshaler runtime.Marshaler, server ClassServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
 | 
			
		||||
	var (
 | 
			
		||||
		protoReq GetClassLogoRequest
 | 
			
		||||
		metadata runtime.ServerMetadata
 | 
			
		||||
	)
 | 
			
		||||
	if err := req.ParseForm(); err != nil {
 | 
			
		||||
		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 | 
			
		||||
	}
 | 
			
		||||
	if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ClassService_GetClassLogo_0); err != nil {
 | 
			
		||||
		return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
 | 
			
		||||
	}
 | 
			
		||||
	msg, err := server.GetClassLogo(ctx, &protoReq)
 | 
			
		||||
	return msg, metadata, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RegisterClassServiceHandlerServer registers the http handlers for service ClassService to "mux".
 | 
			
		||||
// UnaryRPC     :call ClassServiceServer directly.
 | 
			
		||||
// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
 | 
			
		||||
// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterClassServiceHandlerFromEndpoint instead.
 | 
			
		||||
// GRPC interceptors will not work for this type of registration. To use interceptors, you must use the "runtime.WithMiddlewares" option in the "runtime.NewServeMux" call.
 | 
			
		||||
func RegisterClassServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ClassServiceServer) error {
 | 
			
		||||
	mux.Handle(http.MethodGet, pattern_ClassService_GetClassLogo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
 | 
			
		||||
		ctx, cancel := context.WithCancel(req.Context())
 | 
			
		||||
		defer cancel()
 | 
			
		||||
		var stream runtime.ServerTransportStream
 | 
			
		||||
		ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
 | 
			
		||||
		inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
 | 
			
		||||
		annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/class.v1alpha1.ClassService/GetClassLogo", runtime.WithHTTPPathPattern("/v1alpha1/class/logo"))
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		resp, md, err := local_request_ClassService_GetClassLogo_0(annotatedContext, inboundMarshaler, server, req, pathParams)
 | 
			
		||||
		md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
 | 
			
		||||
		annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		forward_ClassService_GetClassLogo_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RegisterClassServiceHandlerFromEndpoint is same as RegisterClassServiceHandler but
 | 
			
		||||
// automatically dials to "endpoint" and closes the connection when "ctx" gets done.
 | 
			
		||||
func RegisterClassServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) {
 | 
			
		||||
	conn, err := grpc.NewClient(endpoint, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	defer func() {
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			if cerr := conn.Close(); cerr != nil {
 | 
			
		||||
				grpclog.Errorf("Failed to close conn to %s: %v", endpoint, cerr)
 | 
			
		||||
			}
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		go func() {
 | 
			
		||||
			<-ctx.Done()
 | 
			
		||||
			if cerr := conn.Close(); cerr != nil {
 | 
			
		||||
				grpclog.Errorf("Failed to close conn to %s: %v", endpoint, cerr)
 | 
			
		||||
			}
 | 
			
		||||
		}()
 | 
			
		||||
	}()
 | 
			
		||||
	return RegisterClassServiceHandler(ctx, mux, conn)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RegisterClassServiceHandler registers the http handlers for service ClassService to "mux".
 | 
			
		||||
// The handlers forward requests to the grpc endpoint over "conn".
 | 
			
		||||
func RegisterClassServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
 | 
			
		||||
	return RegisterClassServiceHandlerClient(ctx, mux, NewClassServiceClient(conn))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RegisterClassServiceHandlerClient registers the http handlers for service ClassService
 | 
			
		||||
// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "ClassServiceClient".
 | 
			
		||||
// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "ClassServiceClient"
 | 
			
		||||
// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
 | 
			
		||||
// "ClassServiceClient" to call the correct interceptors. This client ignores the HTTP middlewares.
 | 
			
		||||
func RegisterClassServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ClassServiceClient) error {
 | 
			
		||||
	mux.Handle(http.MethodGet, pattern_ClassService_GetClassLogo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
 | 
			
		||||
		ctx, cancel := context.WithCancel(req.Context())
 | 
			
		||||
		defer cancel()
 | 
			
		||||
		inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
 | 
			
		||||
		annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/class.v1alpha1.ClassService/GetClassLogo", runtime.WithHTTPPathPattern("/v1alpha1/class/logo"))
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		resp, md, err := request_ClassService_GetClassLogo_0(annotatedContext, inboundMarshaler, client, req, pathParams)
 | 
			
		||||
		annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		forward_ClassService_GetClassLogo_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
 | 
			
		||||
	})
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	pattern_ClassService_GetClassLogo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1alpha1", "class", "logo"}, ""))
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	forward_ClassService_GetClassLogo_0 = runtime.ForwardResponseMessage
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										121
									
								
								api/class/v1alpha1/class_grpc.pb.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								api/class/v1alpha1/class_grpc.pb.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,121 @@
 | 
			
		||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 | 
			
		||||
// versions:
 | 
			
		||||
// - protoc-gen-go-grpc v1.5.1
 | 
			
		||||
// - protoc             v5.29.3
 | 
			
		||||
// source: class/v1alpha1/class.proto
 | 
			
		||||
 | 
			
		||||
package class
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	context "context"
 | 
			
		||||
	grpc "google.golang.org/grpc"
 | 
			
		||||
	codes "google.golang.org/grpc/codes"
 | 
			
		||||
	status "google.golang.org/grpc/status"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// This is a compile-time assertion to ensure that this generated file
 | 
			
		||||
// is compatible with the grpc package it is being compiled against.
 | 
			
		||||
// Requires gRPC-Go v1.64.0 or later.
 | 
			
		||||
const _ = grpc.SupportPackageIsVersion9
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	ClassService_GetClassLogo_FullMethodName = "/class.v1alpha1.ClassService/GetClassLogo"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ClassServiceClient is the client API for ClassService service.
 | 
			
		||||
//
 | 
			
		||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 | 
			
		||||
type ClassServiceClient interface {
 | 
			
		||||
	GetClassLogo(ctx context.Context, in *GetClassLogoRequest, opts ...grpc.CallOption) (*GetClassLogoResponse, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type classServiceClient struct {
 | 
			
		||||
	cc grpc.ClientConnInterface
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewClassServiceClient(cc grpc.ClientConnInterface) ClassServiceClient {
 | 
			
		||||
	return &classServiceClient{cc}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *classServiceClient) GetClassLogo(ctx context.Context, in *GetClassLogoRequest, opts ...grpc.CallOption) (*GetClassLogoResponse, error) {
 | 
			
		||||
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 | 
			
		||||
	out := new(GetClassLogoResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, ClassService_GetClassLogo_FullMethodName, in, out, cOpts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ClassServiceServer is the server API for ClassService service.
 | 
			
		||||
// All implementations must embed UnimplementedClassServiceServer
 | 
			
		||||
// for forward compatibility.
 | 
			
		||||
type ClassServiceServer interface {
 | 
			
		||||
	GetClassLogo(context.Context, *GetClassLogoRequest) (*GetClassLogoResponse, error)
 | 
			
		||||
	mustEmbedUnimplementedClassServiceServer()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// UnimplementedClassServiceServer must be embedded to have
 | 
			
		||||
// forward compatible implementations.
 | 
			
		||||
//
 | 
			
		||||
// NOTE: this should be embedded by value instead of pointer to avoid a nil
 | 
			
		||||
// pointer dereference when methods are called.
 | 
			
		||||
type UnimplementedClassServiceServer struct{}
 | 
			
		||||
 | 
			
		||||
func (UnimplementedClassServiceServer) GetClassLogo(context.Context, *GetClassLogoRequest) (*GetClassLogoResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method GetClassLogo not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (UnimplementedClassServiceServer) mustEmbedUnimplementedClassServiceServer() {}
 | 
			
		||||
func (UnimplementedClassServiceServer) testEmbeddedByValue()                      {}
 | 
			
		||||
 | 
			
		||||
// UnsafeClassServiceServer may be embedded to opt out of forward compatibility for this service.
 | 
			
		||||
// Use of this interface is not recommended, as added methods to ClassServiceServer will
 | 
			
		||||
// result in compilation errors.
 | 
			
		||||
type UnsafeClassServiceServer interface {
 | 
			
		||||
	mustEmbedUnimplementedClassServiceServer()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func RegisterClassServiceServer(s grpc.ServiceRegistrar, srv ClassServiceServer) {
 | 
			
		||||
	// If the following call pancis, it indicates UnimplementedClassServiceServer was
 | 
			
		||||
	// embedded by pointer and is nil.  This will cause panics if an
 | 
			
		||||
	// unimplemented method is ever invoked, so we test this at initialization
 | 
			
		||||
	// time to prevent it from happening at runtime later due to I/O.
 | 
			
		||||
	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
 | 
			
		||||
		t.testEmbeddedByValue()
 | 
			
		||||
	}
 | 
			
		||||
	s.RegisterService(&ClassService_ServiceDesc, srv)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _ClassService_GetClassLogo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(GetClassLogoRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(ClassServiceServer).GetClassLogo(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: ClassService_GetClassLogo_FullMethodName,
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(ClassServiceServer).GetClassLogo(ctx, req.(*GetClassLogoRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ClassService_ServiceDesc is the grpc.ServiceDesc for ClassService service.
 | 
			
		||||
// It's only intended for direct use with grpc.RegisterService,
 | 
			
		||||
// and not to be introspected or modified (even as a copy)
 | 
			
		||||
var ClassService_ServiceDesc = grpc.ServiceDesc{
 | 
			
		||||
	ServiceName: "class.v1alpha1.ClassService",
 | 
			
		||||
	HandlerType: (*ClassServiceServer)(nil),
 | 
			
		||||
	Methods: []grpc.MethodDesc{
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "GetClassLogo",
 | 
			
		||||
			Handler:    _ClassService_GetClassLogo_Handler,
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	Streams:  []grpc.StreamDesc{},
 | 
			
		||||
	Metadata: "class/v1alpha1/class.proto",
 | 
			
		||||
}
 | 
			
		||||
@@ -153,7 +153,7 @@ const file_demo_app_v1alpha1_app_proto_rawDesc = "" +
 | 
			
		||||
	"\x06source\x18\x03 \x01(\tR\x06source\x12\x1a\n" +
 | 
			
		||||
	"\blanguage\x18\x04 \x01(\tR\blanguage2z\n" +
 | 
			
		||||
	"\x0eDemoAppService\x12h\n" +
 | 
			
		||||
	"\aGetDemo\x12!.demo.app.v1alpha1.GetDemoRequest\x1a\".demo.app.v1alpha1.GetDemoResponse\"\x16\x82\xd3\xe4\x93\x02\x10\x12\x0e/v1alpha1/demoBNZLgitea.libretechconsulting.com/rmcguire/class-server/api/v1alpha1/demob\x06proto3"
 | 
			
		||||
	"\aGetDemo\x12!.demo.app.v1alpha1.GetDemoRequest\x1a\".demo.app.v1alpha1.GetDemoResponse\"\x16\x82\xd3\xe4\x93\x02\x10\x12\x0e/v1alpha1/demoBGZEgitea.libretechconsulting.com/rmcguire/class-server/api/v1alpha1/demob\x06proto3"
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	file_demo_app_v1alpha1_app_proto_rawDescOnce sync.Once
 | 
			
		||||
 
 | 
			
		||||
@@ -7,9 +7,9 @@ opts:
 | 
			
		||||
  factType: random
 | 
			
		||||
 | 
			
		||||
# go-app config
 | 
			
		||||
name: Demo go-app
 | 
			
		||||
name: Class App
 | 
			
		||||
logging:
 | 
			
		||||
  format: console
 | 
			
		||||
  format: json
 | 
			
		||||
  level: trace
 | 
			
		||||
  enabled: true
 | 
			
		||||
otel:
 | 
			
		||||
@@ -17,12 +17,12 @@ otel:
 | 
			
		||||
  stdoutEnabled: false
 | 
			
		||||
http:
 | 
			
		||||
  enabled: true
 | 
			
		||||
  listen: :8080
 | 
			
		||||
  listen: :18080
 | 
			
		||||
  logRequests: true
 | 
			
		||||
grpc:
 | 
			
		||||
  enabled: true
 | 
			
		||||
  enableReflection: true
 | 
			
		||||
  listen: :8081
 | 
			
		||||
  listen: :18081
 | 
			
		||||
  grpcGatewayPath: /api
 | 
			
		||||
  enableGRPCGateway: true
 | 
			
		||||
  enableInstrumentation: true
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,13 @@
 | 
			
		||||
{
 | 
			
		||||
  "swagger": "2.0",
 | 
			
		||||
  "info": {
 | 
			
		||||
    "title": "demo/app/v1alpha1/app.proto",
 | 
			
		||||
    "title": "class/v1alpha1/class.proto",
 | 
			
		||||
    "version": "version not set"
 | 
			
		||||
  },
 | 
			
		||||
  "tags": [
 | 
			
		||||
    {
 | 
			
		||||
      "name": "ClassService"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "DemoAppService"
 | 
			
		||||
    }
 | 
			
		||||
@@ -16,6 +19,189 @@
 | 
			
		||||
    "application/json"
 | 
			
		||||
  ],
 | 
			
		||||
  "paths": {
 | 
			
		||||
    "/v1alpha1/class/logo": {
 | 
			
		||||
      "get": {
 | 
			
		||||
        "operationId": "ClassService_GetClassLogo",
 | 
			
		||||
        "responses": {
 | 
			
		||||
          "200": {
 | 
			
		||||
            "description": "A successful response.",
 | 
			
		||||
            "schema": {
 | 
			
		||||
              "$ref": "#/definitions/v1alpha1GetClassLogoResponse"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          "default": {
 | 
			
		||||
            "description": "An unexpected error response.",
 | 
			
		||||
            "schema": {
 | 
			
		||||
              "$ref": "#/definitions/rpcStatus"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "parameters": [
 | 
			
		||||
          {
 | 
			
		||||
            "name": "font",
 | 
			
		||||
            "in": "query",
 | 
			
		||||
            "required": false,
 | 
			
		||||
            "type": "string",
 | 
			
		||||
            "enum": [
 | 
			
		||||
              "FONT_UNSPECIFIED",
 | 
			
		||||
              "FONT_3X5",
 | 
			
		||||
              "FONT_5LINEOBLIQUE",
 | 
			
		||||
              "FONT_ACROBATIC",
 | 
			
		||||
              "FONT_ALLIGATOR",
 | 
			
		||||
              "FONT_ALLIGATOR2",
 | 
			
		||||
              "FONT_ALPHABET",
 | 
			
		||||
              "FONT_AVATAR",
 | 
			
		||||
              "FONT_BANNER",
 | 
			
		||||
              "FONT_BANNER3",
 | 
			
		||||
              "FONT_BANNER4",
 | 
			
		||||
              "FONT_BARBWIRE",
 | 
			
		||||
              "FONT_BASIC",
 | 
			
		||||
              "FONT_BELL",
 | 
			
		||||
              "FONT_BIG",
 | 
			
		||||
              "FONT_BIGCHIEF",
 | 
			
		||||
              "FONT_BINARY",
 | 
			
		||||
              "FONT_BLOCK",
 | 
			
		||||
              "FONT_BUBBLE",
 | 
			
		||||
              "FONT_BULBHEAD",
 | 
			
		||||
              "FONT_CALGPHY2",
 | 
			
		||||
              "FONT_CALIGRAPHY",
 | 
			
		||||
              "FONT_CATWALK",
 | 
			
		||||
              "FONT_CHUNKY",
 | 
			
		||||
              "FONT_COINSTAK",
 | 
			
		||||
              "FONT_COLOSSAL",
 | 
			
		||||
              "FONT_COMPUTER",
 | 
			
		||||
              "FONT_CONTESSA",
 | 
			
		||||
              "FONT_CONTRAST",
 | 
			
		||||
              "FONT_COSMIC",
 | 
			
		||||
              "FONT_COSMIKE",
 | 
			
		||||
              "FONT_CRICKET",
 | 
			
		||||
              "FONT_CURSIVE",
 | 
			
		||||
              "FONT_CYBERLARGE",
 | 
			
		||||
              "FONT_CYBERMEDIUM",
 | 
			
		||||
              "FONT_CYBERSMALL",
 | 
			
		||||
              "FONT_DIAMOND",
 | 
			
		||||
              "FONT_DIGITAL",
 | 
			
		||||
              "FONT_DOH",
 | 
			
		||||
              "FONT_DOOM",
 | 
			
		||||
              "FONT_DOTMATRIX",
 | 
			
		||||
              "FONT_DRPEPPER",
 | 
			
		||||
              "FONT_EFTICHESS",
 | 
			
		||||
              "FONT_EFTIFONT",
 | 
			
		||||
              "FONT_EFTIPITI",
 | 
			
		||||
              "FONT_EFTIROBOT",
 | 
			
		||||
              "FONT_EFTITALIC",
 | 
			
		||||
              "FONT_EFTIWALL",
 | 
			
		||||
              "FONT_EFTIWATER",
 | 
			
		||||
              "FONT_EPIC",
 | 
			
		||||
              "FONT_FENDER",
 | 
			
		||||
              "FONT_FOURTOPS",
 | 
			
		||||
              "FONT_FUZZY",
 | 
			
		||||
              "FONT_GOOFY",
 | 
			
		||||
              "FONT_GOTHIC",
 | 
			
		||||
              "FONT_GRAFFITI",
 | 
			
		||||
              "FONT_HOLLYWOOD",
 | 
			
		||||
              "FONT_INVITA",
 | 
			
		||||
              "FONT_ISOMETRIC1",
 | 
			
		||||
              "FONT_ISOMETRIC2",
 | 
			
		||||
              "FONT_ISOMETRIC3",
 | 
			
		||||
              "FONT_ISOMETRIC4",
 | 
			
		||||
              "FONT_ITALIC",
 | 
			
		||||
              "FONT_IVRIT",
 | 
			
		||||
              "FONT_JAZMINE",
 | 
			
		||||
              "FONT_JERUSALEM",
 | 
			
		||||
              "FONT_KATAKANA",
 | 
			
		||||
              "FONT_KBAN",
 | 
			
		||||
              "FONT_LARRY3D",
 | 
			
		||||
              "FONT_LCD",
 | 
			
		||||
              "FONT_LEAN",
 | 
			
		||||
              "FONT_LETTERS",
 | 
			
		||||
              "FONT_LINUX",
 | 
			
		||||
              "FONT_LOCKERGNOME",
 | 
			
		||||
              "FONT_MADRID",
 | 
			
		||||
              "FONT_MARQUEE",
 | 
			
		||||
              "FONT_MAXFOUR",
 | 
			
		||||
              "FONT_MIKE",
 | 
			
		||||
              "FONT_MINI",
 | 
			
		||||
              "FONT_MIRROR",
 | 
			
		||||
              "FONT_MNEMONIC",
 | 
			
		||||
              "FONT_MORSE",
 | 
			
		||||
              "FONT_MOSCOW",
 | 
			
		||||
              "FONT_NANCYJ",
 | 
			
		||||
              "FONT_NIPPLES",
 | 
			
		||||
              "FONT_NTGREEK",
 | 
			
		||||
              "FONT_O8",
 | 
			
		||||
              "FONT_OGRE",
 | 
			
		||||
              "FONT_PAWP",
 | 
			
		||||
              "FONT_PEAKS",
 | 
			
		||||
              "FONT_PEBBLES",
 | 
			
		||||
              "FONT_PEPPER",
 | 
			
		||||
              "FONT_POISON",
 | 
			
		||||
              "FONT_PUFFY",
 | 
			
		||||
              "FONT_PYRAMID",
 | 
			
		||||
              "FONT_RECTANGLES",
 | 
			
		||||
              "FONT_RELIEF",
 | 
			
		||||
              "FONT_RELIEF2",
 | 
			
		||||
              "FONT_REV",
 | 
			
		||||
              "FONT_ROMAN",
 | 
			
		||||
              "FONT_ROT13",
 | 
			
		||||
              "FONT_ROUNDED",
 | 
			
		||||
              "FONT_ROWANCAP",
 | 
			
		||||
              "FONT_ROZZO",
 | 
			
		||||
              "FONT_RUNIC",
 | 
			
		||||
              "FONT_RUNYC",
 | 
			
		||||
              "FONT_SBLOOD",
 | 
			
		||||
              "FONT_SCRIPT",
 | 
			
		||||
              "FONT_SERIFCAP",
 | 
			
		||||
              "FONT_SHADOW",
 | 
			
		||||
              "FONT_SHORT",
 | 
			
		||||
              "FONT_SLANT",
 | 
			
		||||
              "FONT_SLIDE",
 | 
			
		||||
              "FONT_SLSCRIPT",
 | 
			
		||||
              "FONT_SMALL",
 | 
			
		||||
              "FONT_SMISOME1",
 | 
			
		||||
              "FONT_SMKEYBOARD",
 | 
			
		||||
              "FONT_SMSCRIPT",
 | 
			
		||||
              "FONT_SMSHADOW",
 | 
			
		||||
              "FONT_SMSLANT",
 | 
			
		||||
              "FONT_SMTENGWAR",
 | 
			
		||||
              "FONT_SPEED",
 | 
			
		||||
              "FONT_STAMPATELLO",
 | 
			
		||||
              "FONT_STANDARD",
 | 
			
		||||
              "FONT_STARWARS",
 | 
			
		||||
              "FONT_STELLAR",
 | 
			
		||||
              "FONT_STOP",
 | 
			
		||||
              "FONT_STRAIGHT",
 | 
			
		||||
              "FONT_TANJA",
 | 
			
		||||
              "FONT_TENGWAR",
 | 
			
		||||
              "FONT_TERM",
 | 
			
		||||
              "FONT_THICK",
 | 
			
		||||
              "FONT_THIN",
 | 
			
		||||
              "FONT_THREEPOINT",
 | 
			
		||||
              "FONT_TICKS",
 | 
			
		||||
              "FONT_TICKSSLANT",
 | 
			
		||||
              "FONT_TOMBSTONE",
 | 
			
		||||
              "FONT_TREK",
 | 
			
		||||
              "FONT_TSALAGI",
 | 
			
		||||
              "FONT_TWOPOINT",
 | 
			
		||||
              "FONT_UNIVERS",
 | 
			
		||||
              "FONT_USAFLAG",
 | 
			
		||||
              "FONT_WAVY",
 | 
			
		||||
              "FONT_WEIRD"
 | 
			
		||||
            ],
 | 
			
		||||
            "default": "FONT_UNSPECIFIED"
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "name": "includeString",
 | 
			
		||||
            "in": "query",
 | 
			
		||||
            "required": false,
 | 
			
		||||
            "type": "boolean"
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        "tags": [
 | 
			
		||||
          "ClassService"
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "/v1alpha1/demo": {
 | 
			
		||||
      "get": {
 | 
			
		||||
        "operationId": "DemoAppService_GetDemo",
 | 
			
		||||
@@ -76,6 +262,168 @@
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "v1alpha1Font": {
 | 
			
		||||
      "type": "string",
 | 
			
		||||
      "enum": [
 | 
			
		||||
        "FONT_UNSPECIFIED",
 | 
			
		||||
        "FONT_3X5",
 | 
			
		||||
        "FONT_5LINEOBLIQUE",
 | 
			
		||||
        "FONT_ACROBATIC",
 | 
			
		||||
        "FONT_ALLIGATOR",
 | 
			
		||||
        "FONT_ALLIGATOR2",
 | 
			
		||||
        "FONT_ALPHABET",
 | 
			
		||||
        "FONT_AVATAR",
 | 
			
		||||
        "FONT_BANNER",
 | 
			
		||||
        "FONT_BANNER3",
 | 
			
		||||
        "FONT_BANNER4",
 | 
			
		||||
        "FONT_BARBWIRE",
 | 
			
		||||
        "FONT_BASIC",
 | 
			
		||||
        "FONT_BELL",
 | 
			
		||||
        "FONT_BIG",
 | 
			
		||||
        "FONT_BIGCHIEF",
 | 
			
		||||
        "FONT_BINARY",
 | 
			
		||||
        "FONT_BLOCK",
 | 
			
		||||
        "FONT_BUBBLE",
 | 
			
		||||
        "FONT_BULBHEAD",
 | 
			
		||||
        "FONT_CALGPHY2",
 | 
			
		||||
        "FONT_CALIGRAPHY",
 | 
			
		||||
        "FONT_CATWALK",
 | 
			
		||||
        "FONT_CHUNKY",
 | 
			
		||||
        "FONT_COINSTAK",
 | 
			
		||||
        "FONT_COLOSSAL",
 | 
			
		||||
        "FONT_COMPUTER",
 | 
			
		||||
        "FONT_CONTESSA",
 | 
			
		||||
        "FONT_CONTRAST",
 | 
			
		||||
        "FONT_COSMIC",
 | 
			
		||||
        "FONT_COSMIKE",
 | 
			
		||||
        "FONT_CRICKET",
 | 
			
		||||
        "FONT_CURSIVE",
 | 
			
		||||
        "FONT_CYBERLARGE",
 | 
			
		||||
        "FONT_CYBERMEDIUM",
 | 
			
		||||
        "FONT_CYBERSMALL",
 | 
			
		||||
        "FONT_DIAMOND",
 | 
			
		||||
        "FONT_DIGITAL",
 | 
			
		||||
        "FONT_DOH",
 | 
			
		||||
        "FONT_DOOM",
 | 
			
		||||
        "FONT_DOTMATRIX",
 | 
			
		||||
        "FONT_DRPEPPER",
 | 
			
		||||
        "FONT_EFTICHESS",
 | 
			
		||||
        "FONT_EFTIFONT",
 | 
			
		||||
        "FONT_EFTIPITI",
 | 
			
		||||
        "FONT_EFTIROBOT",
 | 
			
		||||
        "FONT_EFTITALIC",
 | 
			
		||||
        "FONT_EFTIWALL",
 | 
			
		||||
        "FONT_EFTIWATER",
 | 
			
		||||
        "FONT_EPIC",
 | 
			
		||||
        "FONT_FENDER",
 | 
			
		||||
        "FONT_FOURTOPS",
 | 
			
		||||
        "FONT_FUZZY",
 | 
			
		||||
        "FONT_GOOFY",
 | 
			
		||||
        "FONT_GOTHIC",
 | 
			
		||||
        "FONT_GRAFFITI",
 | 
			
		||||
        "FONT_HOLLYWOOD",
 | 
			
		||||
        "FONT_INVITA",
 | 
			
		||||
        "FONT_ISOMETRIC1",
 | 
			
		||||
        "FONT_ISOMETRIC2",
 | 
			
		||||
        "FONT_ISOMETRIC3",
 | 
			
		||||
        "FONT_ISOMETRIC4",
 | 
			
		||||
        "FONT_ITALIC",
 | 
			
		||||
        "FONT_IVRIT",
 | 
			
		||||
        "FONT_JAZMINE",
 | 
			
		||||
        "FONT_JERUSALEM",
 | 
			
		||||
        "FONT_KATAKANA",
 | 
			
		||||
        "FONT_KBAN",
 | 
			
		||||
        "FONT_LARRY3D",
 | 
			
		||||
        "FONT_LCD",
 | 
			
		||||
        "FONT_LEAN",
 | 
			
		||||
        "FONT_LETTERS",
 | 
			
		||||
        "FONT_LINUX",
 | 
			
		||||
        "FONT_LOCKERGNOME",
 | 
			
		||||
        "FONT_MADRID",
 | 
			
		||||
        "FONT_MARQUEE",
 | 
			
		||||
        "FONT_MAXFOUR",
 | 
			
		||||
        "FONT_MIKE",
 | 
			
		||||
        "FONT_MINI",
 | 
			
		||||
        "FONT_MIRROR",
 | 
			
		||||
        "FONT_MNEMONIC",
 | 
			
		||||
        "FONT_MORSE",
 | 
			
		||||
        "FONT_MOSCOW",
 | 
			
		||||
        "FONT_NANCYJ",
 | 
			
		||||
        "FONT_NIPPLES",
 | 
			
		||||
        "FONT_NTGREEK",
 | 
			
		||||
        "FONT_O8",
 | 
			
		||||
        "FONT_OGRE",
 | 
			
		||||
        "FONT_PAWP",
 | 
			
		||||
        "FONT_PEAKS",
 | 
			
		||||
        "FONT_PEBBLES",
 | 
			
		||||
        "FONT_PEPPER",
 | 
			
		||||
        "FONT_POISON",
 | 
			
		||||
        "FONT_PUFFY",
 | 
			
		||||
        "FONT_PYRAMID",
 | 
			
		||||
        "FONT_RECTANGLES",
 | 
			
		||||
        "FONT_RELIEF",
 | 
			
		||||
        "FONT_RELIEF2",
 | 
			
		||||
        "FONT_REV",
 | 
			
		||||
        "FONT_ROMAN",
 | 
			
		||||
        "FONT_ROT13",
 | 
			
		||||
        "FONT_ROUNDED",
 | 
			
		||||
        "FONT_ROWANCAP",
 | 
			
		||||
        "FONT_ROZZO",
 | 
			
		||||
        "FONT_RUNIC",
 | 
			
		||||
        "FONT_RUNYC",
 | 
			
		||||
        "FONT_SBLOOD",
 | 
			
		||||
        "FONT_SCRIPT",
 | 
			
		||||
        "FONT_SERIFCAP",
 | 
			
		||||
        "FONT_SHADOW",
 | 
			
		||||
        "FONT_SHORT",
 | 
			
		||||
        "FONT_SLANT",
 | 
			
		||||
        "FONT_SLIDE",
 | 
			
		||||
        "FONT_SLSCRIPT",
 | 
			
		||||
        "FONT_SMALL",
 | 
			
		||||
        "FONT_SMISOME1",
 | 
			
		||||
        "FONT_SMKEYBOARD",
 | 
			
		||||
        "FONT_SMSCRIPT",
 | 
			
		||||
        "FONT_SMSHADOW",
 | 
			
		||||
        "FONT_SMSLANT",
 | 
			
		||||
        "FONT_SMTENGWAR",
 | 
			
		||||
        "FONT_SPEED",
 | 
			
		||||
        "FONT_STAMPATELLO",
 | 
			
		||||
        "FONT_STANDARD",
 | 
			
		||||
        "FONT_STARWARS",
 | 
			
		||||
        "FONT_STELLAR",
 | 
			
		||||
        "FONT_STOP",
 | 
			
		||||
        "FONT_STRAIGHT",
 | 
			
		||||
        "FONT_TANJA",
 | 
			
		||||
        "FONT_TENGWAR",
 | 
			
		||||
        "FONT_TERM",
 | 
			
		||||
        "FONT_THICK",
 | 
			
		||||
        "FONT_THIN",
 | 
			
		||||
        "FONT_THREEPOINT",
 | 
			
		||||
        "FONT_TICKS",
 | 
			
		||||
        "FONT_TICKSSLANT",
 | 
			
		||||
        "FONT_TOMBSTONE",
 | 
			
		||||
        "FONT_TREK",
 | 
			
		||||
        "FONT_TSALAGI",
 | 
			
		||||
        "FONT_TWOPOINT",
 | 
			
		||||
        "FONT_UNIVERS",
 | 
			
		||||
        "FONT_USAFLAG",
 | 
			
		||||
        "FONT_WAVY",
 | 
			
		||||
        "FONT_WEIRD"
 | 
			
		||||
      ],
 | 
			
		||||
      "default": "FONT_UNSPECIFIED"
 | 
			
		||||
    },
 | 
			
		||||
    "v1alpha1GetClassLogoResponse": {
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "properties": {
 | 
			
		||||
        "logoBytes": {
 | 
			
		||||
          "type": "string",
 | 
			
		||||
          "format": "byte"
 | 
			
		||||
        },
 | 
			
		||||
        "logoString": {
 | 
			
		||||
          "type": "string"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "v1alpha1GetDemoResponse": {
 | 
			
		||||
      "type": "object",
 | 
			
		||||
      "properties": {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								go.mod
									
									
									
									
									
								
							@@ -4,6 +4,7 @@ go 1.24.1
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	gitea.libretechconsulting.com/rmcguire/go-app v0.9.2
 | 
			
		||||
	github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be
 | 
			
		||||
	github.com/go-resty/resty/v2 v2.16.5
 | 
			
		||||
	github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3
 | 
			
		||||
	github.com/rs/zerolog v1.34.0
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								go.sum
									
									
									
									
									
								
							@@ -12,6 +12,8 @@ github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK3
 | 
			
		||||
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
 | 
			
		||||
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
 | 
			
		||||
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 | 
			
		||||
github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be h1:J5BL2kskAlV9ckgEsNQXscjIaLiOYiZ75d4e94E6dcQ=
 | 
			
		||||
github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be/go.mod h1:mk5IQ+Y0ZeO87b858TlA645sVcEcbiX6YqP98kt+7+w=
 | 
			
		||||
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
@@ -33,7 +35,6 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
 | 
			
		||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 | 
			
		||||
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.1 h1:KcFzXwzM/kGhIRHvc8jdixfIJjVzuUJdnv+5xsPutog=
 | 
			
		||||
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.1/go.mod h1:qOchhhIlmRcqk/O9uCo/puJlyo07YINaIqdZfZG3Jkc=
 | 
			
		||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
 | 
			
		||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo=
 | 
			
		||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3/go.mod h1:ndYquD05frm2vACXE1nsccT4oJzjhw2arTS2cpUD1PI=
 | 
			
		||||
github.com/iancoleman/orderedmap v0.3.0 h1:5cbR2grmZR/DiVt+VJopEhtVs9YGInGIxAoMJn+Ichc=
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										7
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								main.go
									
									
									
									
									
								
							@@ -23,6 +23,7 @@ import (
 | 
			
		||||
	optsgrpc "gitea.libretechconsulting.com/rmcguire/go-app/pkg/srv/grpc/opts"
 | 
			
		||||
	optshttp "gitea.libretechconsulting.com/rmcguire/go-app/pkg/srv/http/opts"
 | 
			
		||||
 | 
			
		||||
	"gitea.libretechconsulting.com/rmcguire/class-server/pkg/classgrpc"
 | 
			
		||||
	"gitea.libretechconsulting.com/rmcguire/class-server/pkg/config"
 | 
			
		||||
	"gitea.libretechconsulting.com/rmcguire/class-server/pkg/demogrpc"
 | 
			
		||||
	"gitea.libretechconsulting.com/rmcguire/class-server/pkg/demohttp"
 | 
			
		||||
@@ -51,12 +52,14 @@ func main() {
 | 
			
		||||
	demoHTTP := demohttp.NewDemoHTTPServer(ctx, demoApp)
 | 
			
		||||
	demoGRPC := demogrpc.NewDemoGRPCServer(ctx, demoApp)
 | 
			
		||||
 | 
			
		||||
	classGRPC := classgrpc.New(ctx)
 | 
			
		||||
 | 
			
		||||
	// Prepare app
 | 
			
		||||
	app := &app.App{
 | 
			
		||||
		AppContext: ctx,
 | 
			
		||||
		GRPC: &optsgrpc.AppGRPC{
 | 
			
		||||
			Services:     demoGRPC.GetServices(),
 | 
			
		||||
			GRPCDialOpts: demoGRPC.GetDialOpts(),
 | 
			
		||||
			Services:     append(demoGRPC.GetServices(), classGRPC.GetServices()...),
 | 
			
		||||
			GRPCDialOpts: append(demoGRPC.GetDialOpts(), classGRPC.GetDialOpts()...),
 | 
			
		||||
		},
 | 
			
		||||
		HTTP: &optshttp.AppHTTP{
 | 
			
		||||
			Ctx:          ctx,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										45
									
								
								pkg/classgrpc/class.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								pkg/classgrpc/class.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
package classgrpc
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	figure "github.com/common-nighthawk/go-figure"
 | 
			
		||||
 | 
			
		||||
	class "gitea.libretechconsulting.com/rmcguire/class-server/api/class/v1alpha1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type ClassService struct {
 | 
			
		||||
	class.UnimplementedClassServiceServer
 | 
			
		||||
	ctx context.Context
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var DefaultFont = class.Font_FONT_BARBWIRE
 | 
			
		||||
 | 
			
		||||
func (s *ClassService) GetClassLogo(ctx context.Context, req *class.GetClassLogoRequest) (*class.GetClassLogoResponse, error) {
 | 
			
		||||
	if req.GetFont() == class.Font_FONT_UNSPECIFIED {
 | 
			
		||||
		req.Font = DefaultFont
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	f := figure.NewFigure("Indiana Tech", getFontString(req.GetFont()), false)
 | 
			
		||||
 | 
			
		||||
	resp := &class.GetClassLogoResponse{
 | 
			
		||||
		LogoBytes: []byte(f.String()),
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if req.GetIncludeString() {
 | 
			
		||||
		resp.LogoString = f.String()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return resp, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getFontString(font class.Font) string {
 | 
			
		||||
	return strings.ToLower(strings.ReplaceAll(font.String(), "FONT_", ""))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func New(ctx context.Context) *ClassService {
 | 
			
		||||
	return &ClassService{
 | 
			
		||||
		ctx: ctx,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								pkg/classgrpc/server.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								pkg/classgrpc/server.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
package classgrpc
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"gitea.libretechconsulting.com/rmcguire/go-app/pkg/srv/grpc/opts"
 | 
			
		||||
	"google.golang.org/grpc"
 | 
			
		||||
	"google.golang.org/grpc/credentials/insecure"
 | 
			
		||||
 | 
			
		||||
	class "gitea.libretechconsulting.com/rmcguire/class-server/api/class/v1alpha1"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (s *ClassService) GetDialOpts() []grpc.DialOption {
 | 
			
		||||
	return []grpc.DialOption{
 | 
			
		||||
		// NOTE: Necessary for grpc-gateway to connect to grpc server
 | 
			
		||||
		// Update if grpc service has credentials, tls, etc..
 | 
			
		||||
		grpc.WithTransportCredentials(insecure.NewCredentials()),
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *ClassService) GetServices() []*opts.GRPCService {
 | 
			
		||||
	return []*opts.GRPCService{
 | 
			
		||||
		{
 | 
			
		||||
			Name:    "Class App",
 | 
			
		||||
			Type:    &class.ClassService_ServiceDesc,
 | 
			
		||||
			Service: s,
 | 
			
		||||
			GwRegistrationFuncs: []opts.GwRegistrationFunc{
 | 
			
		||||
				class.RegisterClassServiceHandler,
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -2,21 +2,159 @@ syntax = "proto3";
 | 
			
		||||
package class.v1alpha1;
 | 
			
		||||
 | 
			
		||||
import "google/api/annotations.proto";
 | 
			
		||||
import "google/protobuf/timestamp.proto";
 | 
			
		||||
 | 
			
		||||
option go_package = "gitea.libretechconsulting.com/rmcguire/class-server/api/v1alpha1/class";
 | 
			
		||||
 | 
			
		||||
enum LogoType {
 | 
			
		||||
  LOGO_TYPE_UNSPECIFIED = 0;
 | 
			
		||||
  LOGO_TYPE_RANDOM = 1;
 | 
			
		||||
  LOGO_TYPE_TECH = 2;
 | 
			
		||||
enum Font {
 | 
			
		||||
  FONT_UNSPECIFIED = 0;
 | 
			
		||||
  FONT_3X5 = 2;
 | 
			
		||||
  FONT_5LINEOBLIQUE = 3;
 | 
			
		||||
  FONT_ACROBATIC = 4;
 | 
			
		||||
  FONT_ALLIGATOR = 5;
 | 
			
		||||
  FONT_ALLIGATOR2 = 6;
 | 
			
		||||
  FONT_ALPHABET = 7;
 | 
			
		||||
  FONT_AVATAR = 8;
 | 
			
		||||
  FONT_BANNER = 9;
 | 
			
		||||
  FONT_BANNER3 = 11;
 | 
			
		||||
  FONT_BANNER4 = 12;
 | 
			
		||||
  FONT_BARBWIRE = 13;
 | 
			
		||||
  FONT_BASIC = 14;
 | 
			
		||||
  FONT_BELL = 15;
 | 
			
		||||
  FONT_BIG = 16;
 | 
			
		||||
  FONT_BIGCHIEF = 17;
 | 
			
		||||
  FONT_BINARY = 18;
 | 
			
		||||
  FONT_BLOCK = 19;
 | 
			
		||||
  FONT_BUBBLE = 20;
 | 
			
		||||
  FONT_BULBHEAD = 21;
 | 
			
		||||
  FONT_CALGPHY2 = 22;
 | 
			
		||||
  FONT_CALIGRAPHY = 23;
 | 
			
		||||
  FONT_CATWALK = 24;
 | 
			
		||||
  FONT_CHUNKY = 25;
 | 
			
		||||
  FONT_COINSTAK = 26;
 | 
			
		||||
  FONT_COLOSSAL = 27;
 | 
			
		||||
  FONT_COMPUTER = 28;
 | 
			
		||||
  FONT_CONTESSA = 29;
 | 
			
		||||
  FONT_CONTRAST = 30;
 | 
			
		||||
  FONT_COSMIC = 31;
 | 
			
		||||
  FONT_COSMIKE = 32;
 | 
			
		||||
  FONT_CRICKET = 33;
 | 
			
		||||
  FONT_CURSIVE = 34;
 | 
			
		||||
  FONT_CYBERLARGE = 35;
 | 
			
		||||
  FONT_CYBERMEDIUM = 36;
 | 
			
		||||
  FONT_CYBERSMALL = 37;
 | 
			
		||||
  FONT_DIAMOND = 38;
 | 
			
		||||
  FONT_DIGITAL = 39;
 | 
			
		||||
  FONT_DOH = 40;
 | 
			
		||||
  FONT_DOOM = 41;
 | 
			
		||||
  FONT_DOTMATRIX = 42;
 | 
			
		||||
  FONT_DRPEPPER = 43;
 | 
			
		||||
  FONT_EFTICHESS = 44;
 | 
			
		||||
  FONT_EFTIFONT = 45;
 | 
			
		||||
  FONT_EFTIPITI = 46;
 | 
			
		||||
  FONT_EFTIROBOT = 47;
 | 
			
		||||
  FONT_EFTITALIC = 48;
 | 
			
		||||
  FONT_EFTIWALL = 49;
 | 
			
		||||
  FONT_EFTIWATER = 50;
 | 
			
		||||
  FONT_EPIC = 51;
 | 
			
		||||
  FONT_FENDER = 52;
 | 
			
		||||
  FONT_FOURTOPS = 53;
 | 
			
		||||
  FONT_FUZZY = 54;
 | 
			
		||||
  FONT_GOOFY = 55;
 | 
			
		||||
  FONT_GOTHIC = 56;
 | 
			
		||||
  FONT_GRAFFITI = 57;
 | 
			
		||||
  FONT_HOLLYWOOD = 58;
 | 
			
		||||
  FONT_INVITA = 59;
 | 
			
		||||
  FONT_ISOMETRIC1 = 60;
 | 
			
		||||
  FONT_ISOMETRIC2 = 61;
 | 
			
		||||
  FONT_ISOMETRIC3 = 62;
 | 
			
		||||
  FONT_ISOMETRIC4 = 63;
 | 
			
		||||
  FONT_ITALIC = 64;
 | 
			
		||||
  FONT_IVRIT = 65;
 | 
			
		||||
  FONT_JAZMINE = 66;
 | 
			
		||||
  FONT_JERUSALEM = 67;
 | 
			
		||||
  FONT_KATAKANA = 68;
 | 
			
		||||
  FONT_KBAN = 69;
 | 
			
		||||
  FONT_LARRY3D = 70;
 | 
			
		||||
  FONT_LCD = 71;
 | 
			
		||||
  FONT_LEAN = 72;
 | 
			
		||||
  FONT_LETTERS = 73;
 | 
			
		||||
  FONT_LINUX = 74;
 | 
			
		||||
  FONT_LOCKERGNOME = 75;
 | 
			
		||||
  FONT_MADRID = 76;
 | 
			
		||||
  FONT_MARQUEE = 77;
 | 
			
		||||
  FONT_MAXFOUR = 78;
 | 
			
		||||
  FONT_MIKE = 79;
 | 
			
		||||
  FONT_MINI = 80;
 | 
			
		||||
  FONT_MIRROR = 81;
 | 
			
		||||
  FONT_MNEMONIC = 82;
 | 
			
		||||
  FONT_MORSE = 83;
 | 
			
		||||
  FONT_MOSCOW = 84;
 | 
			
		||||
  FONT_NANCYJ = 87;
 | 
			
		||||
  FONT_NIPPLES = 88;
 | 
			
		||||
  FONT_NTGREEK = 89;
 | 
			
		||||
  FONT_O8 = 90;
 | 
			
		||||
  FONT_OGRE = 91;
 | 
			
		||||
  FONT_PAWP = 92;
 | 
			
		||||
  FONT_PEAKS = 93;
 | 
			
		||||
  FONT_PEBBLES = 94;
 | 
			
		||||
  FONT_PEPPER = 95;
 | 
			
		||||
  FONT_POISON = 96;
 | 
			
		||||
  FONT_PUFFY = 97;
 | 
			
		||||
  FONT_PYRAMID = 98;
 | 
			
		||||
  FONT_RECTANGLES = 99;
 | 
			
		||||
  FONT_RELIEF = 100;
 | 
			
		||||
  FONT_RELIEF2 = 101;
 | 
			
		||||
  FONT_REV = 102;
 | 
			
		||||
  FONT_ROMAN = 103;
 | 
			
		||||
  FONT_ROT13 = 104;
 | 
			
		||||
  FONT_ROUNDED = 105;
 | 
			
		||||
  FONT_ROWANCAP = 106;
 | 
			
		||||
  FONT_ROZZO = 107;
 | 
			
		||||
  FONT_RUNIC = 108;
 | 
			
		||||
  FONT_RUNYC = 109;
 | 
			
		||||
  FONT_SBLOOD = 110;
 | 
			
		||||
  FONT_SCRIPT = 111;
 | 
			
		||||
  FONT_SERIFCAP = 112;
 | 
			
		||||
  FONT_SHADOW = 113;
 | 
			
		||||
  FONT_SHORT = 114;
 | 
			
		||||
  FONT_SLANT = 115;
 | 
			
		||||
  FONT_SLIDE = 116;
 | 
			
		||||
  FONT_SLSCRIPT = 117;
 | 
			
		||||
  FONT_SMALL = 118;
 | 
			
		||||
  FONT_SMISOME1 = 119;
 | 
			
		||||
  FONT_SMKEYBOARD = 120;
 | 
			
		||||
  FONT_SMSCRIPT = 121;
 | 
			
		||||
  FONT_SMSHADOW = 122;
 | 
			
		||||
  FONT_SMSLANT = 123;
 | 
			
		||||
  FONT_SMTENGWAR = 124;
 | 
			
		||||
  FONT_SPEED = 125;
 | 
			
		||||
  FONT_STAMPATELLO = 126;
 | 
			
		||||
  FONT_STANDARD = 127;
 | 
			
		||||
  FONT_STARWARS = 128;
 | 
			
		||||
  FONT_STELLAR = 129;
 | 
			
		||||
  FONT_STOP = 130;
 | 
			
		||||
  FONT_STRAIGHT = 131;
 | 
			
		||||
  FONT_TANJA = 132;
 | 
			
		||||
  FONT_TENGWAR = 133;
 | 
			
		||||
  FONT_TERM = 134;
 | 
			
		||||
  FONT_THICK = 135;
 | 
			
		||||
  FONT_THIN = 136;
 | 
			
		||||
  FONT_THREEPOINT = 137;
 | 
			
		||||
  FONT_TICKS = 138;
 | 
			
		||||
  FONT_TICKSSLANT = 139;
 | 
			
		||||
  FONT_TOMBSTONE = 141;
 | 
			
		||||
  FONT_TREK = 142;
 | 
			
		||||
  FONT_TSALAGI = 143;
 | 
			
		||||
  FONT_TWOPOINT = 144;
 | 
			
		||||
  FONT_UNIVERS = 145;
 | 
			
		||||
  FONT_USAFLAG = 146;
 | 
			
		||||
  FONT_WAVY = 147;
 | 
			
		||||
  FONT_WEIRD = 148;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message GetClassLogoRequest {
 | 
			
		||||
  LogoType logo_type = 1;
 | 
			
		||||
  // Default is no padding
 | 
			
		||||
  optional uint32 logo_padding = 2;
 | 
			
		||||
  optional bool include_string = 3;
 | 
			
		||||
  Font font = 1;
 | 
			
		||||
  optional bool include_string = 2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message GetClassLogoResponse {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user