浏览代码

Add PokedexNumber to parsed informtaion

Andrew Swistak 7 年之前
父节点
当前提交
eb02f92785
共有 4 个文件被更改,包括 10 次插入7 次删除
  1. 2 0
      pokemon-parsing/gen7/parse.go
  2. 4 3
      pokemon/pokemon.go
  3. 1 1
      web/parse.go
  4. 3 3
      web/parse_integration_test.go

+ 2 - 0
pokemon-parsing/gen7/parse.go

@@ -15,6 +15,8 @@ func Parse(rawPokemon p.RawPokemon) (*p.Pokemon, error) {
 	}
 
 	var pkmn p.Pokemon
+
+	pkmn.PokedexNumber = uint(rawPokemon[0x08])
 	pkmn.RawNickname = rawPokemon[0x40:0x58]
 	pkmn.Nickname = string(pkmn.RawNickname)
 	pkmn.RawPokemon = &rawPokemon

+ 4 - 3
pokemon/pokemon.go

@@ -6,7 +6,8 @@ type RawPokemon []byte
 // Pokemon is a struct the has fields for all relevant pokemon data from a
 // RawPokemon.
 type Pokemon struct {
-	RawNickname []byte      `json:"raw_nickname"`
-	Nickname    string      `json:"nickname"`
-	RawPokemon  *RawPokemon `json:"raw_pokemon"`
+	PokedexNumber uint        `json:"pokedex_number"`
+	RawNickname   []byte      `json:"raw_nickname"`
+	Nickname      string      `json:"nickname"`
+	RawPokemon    *RawPokemon `json:"raw_pokemon"`
 }

+ 1 - 1
web/parse.go

@@ -58,5 +58,5 @@ func (s *Server) parse(c *gin.Context) {
 		return
 	}
 
-	render(c, http.StatusOK, gin.H{"pkmn": pkmn})
+	render(c, http.StatusOK, pkmn)
 }

+ 3 - 3
web/parse_integration_test.go

@@ -27,12 +27,12 @@ func Test_parse(t *testing.T) {
 		{name: "No files uploaded",
 			body:           [][]byte{},
 			expectedStatus: 200,
-			expectedReply:  `{"pkmn":[]}`,
+			expectedReply:  `[]`,
 		},
 		{name: "1 file uploaded and succeeds",
 			body:           [][]byte{{0x7b, 0x03, 0x17, 0x81, 0x00, 0x00, 0xdd, 0x01, 0x14, 0x00, 0x00, 0x00, 0x6d, 0xaa, 0x32, 0x44, 0x40, 0x1f, 0x00, 0x00, 0x2f, 0x04, 0x00, 0x00, 0x43, 0x56, 0x88, 0x03, 0x12, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x63, 0x00, 0x61, 0x00, 0x74, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x75, 0x01, 0x53, 0x01, 0x9e, 0x00, 0x0a, 0x0f, 0x14, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xfc, 0xff, 0x17, 0x50, 0x00, 0x50, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x50, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x0b, 0x12, 0x00, 0x00, 0x00, 0xca, 0x00, 0x04, 0x14, 0x00, 0x21, 0x01, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00}},
 			expectedStatus: 200,
-			expectedReply:  "{\"pkmn\":[{\"raw_nickname\":\"UgBhAHQAaQBjAGEAdABlAAAAAAAAAAAA\",\"nickname\":\"R\\u0000a\\u0000t\\u0000i\\u0000c\\u0000a\\u0000t\\u0000e\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\",\"raw_pokemon\":\"ewMXgQAA3QEUAAAAbaoyREAfAAAvBAAAQ1aIAxISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFIAYQB0AGkAYwBhAHQAZQAAAAAAAAAAAAAApAB1AVMBngAKDxQPAAAAAAAAAAAAAAAAAAA8/P8XUABQAG8AcgBnAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAARgAAAAAAAAAAAAAAAABQAFAAbwByAGcAAAAAAAAAAAAAAAAAAAAAAEYAAAAAAAAAAAARCxIAAADKAAQUACEBAgACAAAAAA==\"}]}",
+			expectedReply:  "[{\"pokedex_number\":20,\"raw_nickname\":\"UgBhAHQAaQBjAGEAdABlAAAAAAAAAAAA\",\"nickname\":\"R\\u0000a\\u0000t\\u0000i\\u0000c\\u0000a\\u0000t\\u0000e\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\",\"raw_pokemon\":\"ewMXgQAA3QEUAAAAbaoyREAfAAAvBAAAQ1aIAxISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFIAYQB0AGkAYwBhAHQAZQAAAAAAAAAAAAAApAB1AVMBngAKDxQPAAAAAAAAAAAAAAAAAAA8/P8XUABQAG8AcgBnAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAARgAAAAAAAAAAAAAAAABQAFAAbwByAGcAAAAAAAAAAAAAAAAAAAAAAEYAAAAAAAAAAAARCxIAAADKAAQUACEBAgACAAAAAA==\"}]",
 		},
 		{name: "1 file uploaded and fails",
 			body:           [][]byte{{0x7b}},
@@ -45,7 +45,7 @@ func Test_parse(t *testing.T) {
 				{0x7b, 0x03, 0x17, 0x81, 0x00, 0x00, 0xdd, 0x01, 0x14, 0x00, 0x00, 0x00, 0x6d, 0xaa, 0x32, 0x44, 0x40, 0x1f, 0x00, 0x00, 0x2f, 0x04, 0x00, 0x00, 0x43, 0x56, 0x88, 0x03, 0x12, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x63, 0x00, 0x61, 0x00, 0x74, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x75, 0x01, 0x53, 0x01, 0x9e, 0x00, 0x0a, 0x0f, 0x14, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xfc, 0xff, 0x17, 0x50, 0x00, 0x50, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x50, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x0b, 0x12, 0x00, 0x00, 0x00, 0xca, 0x00, 0x04, 0x14, 0x00, 0x21, 0x01, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00},
 			},
 			expectedStatus: 200,
-			expectedReply:  "{\"pkmn\":[{\"raw_nickname\":\"UgBhAHQAaQBjAGEAdABlAAAAAAAAAAAA\",\"nickname\":\"R\\u0000a\\u0000t\\u0000i\\u0000c\\u0000a\\u0000t\\u0000e\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\",\"raw_pokemon\":\"ewMXgQAA3QEUAAAAbaoyREAfAAAvBAAAQ1aIAxISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFIAYQB0AGkAYwBhAHQAZQAAAAAAAAAAAAAApAB1AVMBngAKDxQPAAAAAAAAAAAAAAAAAAA8/P8XUABQAG8AcgBnAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAARgAAAAAAAAAAAAAAAABQAFAAbwByAGcAAAAAAAAAAAAAAAAAAAAAAEYAAAAAAAAAAAARCxIAAADKAAQUACEBAgACAAAAAA==\"},{\"raw_nickname\":\"UgBhAHQAaQBjAGEAdABmAAAAAAAAAAAA\",\"nickname\":\"R\\u0000a\\u0000t\\u0000i\\u0000c\\u0000a\\u0000t\\u0000f\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\",\"raw_pokemon\":\"ewMXgQAA3QEUAAAAbaoyREAfAAAvBAAAQ1aIAxISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFIAYQB0AGkAYwBhAHQAZgAAAAAAAAAAAAAApAB1AVMBngAKDxQPAAAAAAAAAAAAAAAAAAA8/P8XUABQAG8AcgBnAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAARgAAAAAAAAAAAAAAAABQAFAAbwByAGcAAAAAAAAAAAAAAAAAAAAAAEYAAAAAAAAAAAARCxIAAADKAAQUACEBAgACAAAAAA==\"}]}",
+			expectedReply:  "[{\"pokedex_number\":20,\"raw_nickname\":\"UgBhAHQAaQBjAGEAdABlAAAAAAAAAAAA\",\"nickname\":\"R\\u0000a\\u0000t\\u0000i\\u0000c\\u0000a\\u0000t\\u0000e\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\",\"raw_pokemon\":\"ewMXgQAA3QEUAAAAbaoyREAfAAAvBAAAQ1aIAxISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFIAYQB0AGkAYwBhAHQAZQAAAAAAAAAAAAAApAB1AVMBngAKDxQPAAAAAAAAAAAAAAAAAAA8/P8XUABQAG8AcgBnAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAARgAAAAAAAAAAAAAAAABQAFAAbwByAGcAAAAAAAAAAAAAAAAAAAAAAEYAAAAAAAAAAAARCxIAAADKAAQUACEBAgACAAAAAA==\"},{\"pokedex_number\":20,\"raw_nickname\":\"UgBhAHQAaQBjAGEAdABmAAAAAAAAAAAA\",\"nickname\":\"R\\u0000a\\u0000t\\u0000i\\u0000c\\u0000a\\u0000t\\u0000f\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\",\"raw_pokemon\":\"ewMXgQAA3QEUAAAAbaoyREAfAAAvBAAAQ1aIAxISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFIAYQB0AGkAYwBhAHQAZgAAAAAAAAAAAAAApAB1AVMBngAKDxQPAAAAAAAAAAAAAAAAAAA8/P8XUABQAG8AcgBnAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAARgAAAAAAAAAAAAAAAABQAFAAbwByAGcAAAAAAAAAAAAAAAAAAAAAAEYAAAAAAAAAAAARCxIAAADKAAQUACEBAgACAAAAAA==\"}]",
 		},
 		{name: "Multiple files uploaded and fail",
 			body: [][]byte{