# go-pkparse-server
`go-pkparse-server` is a multi-generational pokemon parser written in Go.
### API Usage
##### `POST /parse`
Query Params:
| Param | Required | Description |
| --- | --- | --- |
| pkmn | ✔️ | One more pk7 files uploaded in a multipart form |
Response:
| Param | Description |
| --- | --- |
| pokedex_number | National pokedex number of the pokemon |
| nickname | The UTF-16LE encoded nickname of the pokemon |
| raw_nickname | Base 64 encoded byte string of the pokemon's nickname |
| raw_pokemon | Base 64 encoded byte string of the entire pokemon data |
Sample request and response:
`curl -X POST http://localhost:8080/parse -F "pkmn=/path/to/thefile.pk7" -F "pkmn=/path/to/anotherfile.pk7" -H "Content-Type: multipart/form-data"`:
```
{
[
{
"nickname" : "R\u0000a\u0000t\u0000i\u0000c\u0000a\u0000t\u0000e\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000",
"pokedex_number" : 20,
"raw_nickname" : "UgBhAHQAaQBjAGEAdABlAAAAAAAAAAAA",
"raw_pokemon" : "ewMXgQAA3QEUAAAAbaoyREAfAAAvBAAAQ1aIAxISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFIAYQB0AGkAYwBhAHQAZQAAAAAAAAAAAAAApAB1AVMBngAKDxQPAAAAAAAAAAAAAAAAAAA8/P8XUABQAG8AcgBnAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAARgAAAAAAAAAAAAAAAABQAFAAbwByAGcAAAAAAAAAAAAAAAAAAAAAAEYAAAAAAAAAAAARCxIAAADKAAQUACEBAgACAAAAAA=="
},
{
"nickname" : "P\u0000i\u0000k\u0000a\u0000c\u0000h\u0000u\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000",
"pokedex_number" : 25,
"raw_nickname" : "UABpAGsAYQBjAGgAdQAAAAAAAAAAAAAA",
"raw_pokemon" : "wJsMkgAAN4IZAAAA0qVgJQAAAAAJAQAA7DtV5QAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAFAAaQBrAGEAYwBoAHUAAAAAAAAAAAAAAAAA8QFVABgB5wAPDw8PAAAAAFUAYgBXAGEAAAAWYq41UABQAG8AcgBnAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAARgAAAAAAAAAAAAAAAABBAHMAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAEYAAAAAAAAAAAARChAAAABBnAQBAB9OAAICAAAAAA=="
}
]
}
```
Sample error response:
| Param | Description |
| --- | --- |
| error | description of the error |
Example error:
`curl -X POST http://localhost:8080/parse -F "pkmn=/path/to/an/invalidfile.pk7" -H "Content-Type: multipart/form-data"`:
```
{
"error": "Invalid length for generation 7 pokemon: 229 bytes"
}
```