Compare commits

..

1 Commits

Author SHA1 Message Date
Pin
e798eb800c Added License
Signed-off-by: Pin <wf6DJd8a3xSSCZbn@protonmail.com>
2021-01-31 19:43:33 -05:00
10 changed files with 72 additions and 128 deletions

View File

@@ -1,19 +1,18 @@
/* /*
Simple API the serves pictures of dogs This file is part of dogapi.
Copyright (C) 2021 Pin
This program is free software: you can redistribute it and/or modify dogapi is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as it under the terms of the GNU Affero General Public License as published by
published by the Free Software Foundation, either version 3 of the the Free Software Foundation, either version 3 of the License, or
License, or (at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, dogapi is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details. GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. along with dogapi. If not, see <https://www.gnu.org/licenses/>.
*/ */
package db package db

View File

@@ -1,19 +1,18 @@
/* /*
Simple API the serves pictures of dogs This file is part of dogapi.
Copyright (C) 2021 Pin
This program is free software: you can redistribute it and/or modify dogapi is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as it under the terms of the GNU Affero General Public License as published by
published by the Free Software Foundation, either version 3 of the the Free Software Foundation, either version 3 of the License, or
License, or (at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, dogapi is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details. GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. along with dogapi. If not, see <https://www.gnu.org/licenses/>.
*/ */
package dbinit package dbinit

View File

@@ -1,19 +1,18 @@
-- --
-- Simple API the serves pictures of dogs -- This file is part of dogapi.
-- Copyright (C) 2021 Pin
-- --
-- This program is free software: you can redistribute it and/or modify -- dogapi is free software: you can redistribute it and/or modify
-- it under the terms of the GNU Affero General Public License as -- it under the terms of the GNU Affero General Public License as published by
-- published by the Free Software Foundation, either version 3 of the -- the Free Software Foundation, either version 3 of the License, or
-- License, or (at your option) any later version. -- (at your option) any later version.
-- --
-- This program is distributed in the hope that it will be useful, -- dogapi is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of -- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU Affero General Public License for more details. -- GNU Affero General Public License for more details.
-- --
-- You should have received a copy of the GNU Affero General Public License -- You should have received a copy of the GNU Affero General Public License
-- along with this program. If not, see <https://www.gnu.org/licenses/>. -- along with dogapi. If not, see <https://www.gnu.org/licenses/>.
-- --
create table breed_manifest if not exists ( create table breed_manifest if not exists (

View File

@@ -1,19 +1,18 @@
/* /*
Simple API the serves pictures of dogs This file is part of dogapi.
Copyright (C) 2021 Pin
This program is free software: you can redistribute it and/or modify dogapi is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as it under the terms of the GNU Affero General Public License as published by
published by the Free Software Foundation, either version 3 of the the Free Software Foundation, either version 3 of the License, or
License, or (at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, dogapi is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details. GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. along with dogapi. If not, see <https://www.gnu.org/licenses/>.
*/ */
package main package main

View File

@@ -1,39 +0,0 @@
/*
Simple API the serves pictures of dogs
Copyright (C) 2021 Pin
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package db
import (
"dogapi/structs"
"log"
)
func DogSelect(dog string) (structs.DogPicRow) {
q := `select * from dog_pictures where breed_id=(select breed_id from breed_manifest where breed=$1) offset floor(random()*(select count(*) from dog_pictures where breed_id=(select breed_id from breed_manifest where breed=$1))) limit 1;`
selstat, err := conn.Query(q, dog)
if err != nil {
log.Fatalln(err)
}
var rowsel structs.DogPicRow
for selstat.Next() {
if err := selstat.Scan(&rowsel.Dog_id, &rowsel.Breed_id, &rowsel.Author, &rowsel.Title, &rowsel.Format, &rowsel.Hash, &rowsel.Url); err != nil {
log.Fatal(err)
}
}
return rowsel
}

View File

@@ -1,19 +1,18 @@
/* /*
Simple API the serves pictures of dogs This file is part of dogapi.
Copyright (C) 2021 Pin
This program is free software: you can redistribute it and/or modify dogapi is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as it under the terms of the GNU Affero General Public License as published by
published by the Free Software Foundation, either version 3 of the the Free Software Foundation, either version 3 of the License, or
License, or (at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, dogapi is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details. GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. along with dogapi. If not, see <https://www.gnu.org/licenses/>.
*/ */
package db package db

View File

@@ -1,19 +1,18 @@
/* /*
Simple API the serves pictures of dogs This file is part of dogapi.
Copyright (C) 2021 Pin
This program is free software: you can redistribute it and/or modify dogapi is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as it under the terms of the GNU Affero General Public License as published by
published by the Free Software Foundation, either version 3 of the the Free Software Foundation, either version 3 of the License, or
License, or (at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, dogapi is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details. GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. along with dogapi. If not, see <https://www.gnu.org/licenses/>.
*/ */
package handlers package handlers
@@ -29,15 +28,7 @@ func APIHandler(w http.ResponseWriter, r *http.Request) {
switch r.Method { switch r.Method {
case "GET": case "GET":
var dogquery structs.DogPicRow var dogquery structs.DogPicRow
keys := r.URL.Query().Get("dog") dogquery = db.RandomSelect()
if len(keys) == 0 { json.NewEncoder(w).Encode(dogquery)
dogquery = db.RandomSelect()
json.NewEncoder(w).Encode(dogquery)
return
} else {
dogquery = db.DogSelect(keys)
json.NewEncoder(w).Encode(dogquery)
return
}
} }
} }

15
init.go
View File

@@ -1,19 +1,18 @@
/* /*
Simple API the serves pictures of dogs This file is part of dogapi.
Copyright (C) 2021 Pin
This program is free software: you can redistribute it and/or modify dogapi is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as it under the terms of the GNU Affero General Public License as published by
published by the Free Software Foundation, either version 3 of the the Free Software Foundation, either version 3 of the License, or
License, or (at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, dogapi is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details. GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. along with dogapi. If not, see <https://www.gnu.org/licenses/>.
*/ */
package main package main

15
main.go
View File

@@ -1,19 +1,18 @@
/* /*
Simple API the serves pictures of dogs This file is part of dogapi.
Copyright (C) 2021 Pin
This program is free software: you can redistribute it and/or modify dogapi is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as it under the terms of the GNU Affero General Public License as published by
published by the Free Software Foundation, either version 3 of the the Free Software Foundation, either version 3 of the License, or
License, or (at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, dogapi is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details. GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. along with dogapi. If not, see <https://www.gnu.org/licenses/>.
*/ */
package main package main

View File

@@ -1,29 +1,28 @@
/* /*
Simple API the serves pictures of dogs This file is part of dogapi.
Copyright (C) 2021 Pin
This program is free software: you can redistribute it and/or modify dogapi is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as it under the terms of the GNU Affero General Public License as published by
published by the Free Software Foundation, either version 3 of the the Free Software Foundation, either version 3 of the License, or
License, or (at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, dogapi is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details. GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. along with dogapi. If not, see <https://www.gnu.org/licenses/>.
*/ */
package structs package structs
type DogPicRow struct { type DogPicRow struct {
Dog_id int `json:"id"` Dog_id int
Breed_id int `json:"bid"` Breed_id int
Author string `json:"author"` Author string
Title string `json:"title"` Title string
Format string `json:"format"` Format string
Hash string `json:"hash"` Hash string
Url string `json:"url"` Url string
} }