Move common structs to libfic

This commit is contained in:
nemunaire 2016-01-13 20:25:25 +01:00
parent d841542be4
commit 92b81e467f
10 changed files with 42 additions and 36 deletions

View File

@ -4,6 +4,8 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"strconv" "strconv"
"srs.epita.fr/fic-server/libfic"
) )
var ApiTeamsRouting = map[string]DispatchFunction{ var ApiTeamsRouting = map[string]DispatchFunction{
@ -25,7 +27,7 @@ type uploadedMember struct {
} }
func nginxGenTeam() (string, error) { func nginxGenTeam() (string, error) {
if teams, err := GetTeams(); err != nil { if teams, err := fic.GetTeams(); err != nil {
return "", err return "", err
} else { } else {
ret := "" ret := ""
@ -43,14 +45,14 @@ func listTeam(args []string, body []byte) (interface{}, error) {
return nginxGenTeam() return nginxGenTeam()
} else if tid, err := strconv.Atoi(string(args[0])); err != nil { } else if tid, err := strconv.Atoi(string(args[0])); err != nil {
return nil, err return nil, err
} else if team, err := GetTeam(tid); err != nil { } else if team, err := fic.GetTeam(tid); err != nil {
return nil, err return nil, err
} else { } else {
return team.GetMembers() return team.GetMembers()
} }
} else if len(args) == 0 { } else if len(args) == 0 {
// List all teams // List all teams
return GetTeams() return fic.GetTeams()
} else { } else {
return nil, nil return nil, nil
} }
@ -64,7 +66,7 @@ func creationTeam(args []string, body []byte) (interface{}, error) {
return nil, err return nil, err
} }
return CreateTeam(ut.Name) return fic.CreateTeam(ut.Name)
} else { } else {
return nil, nil return nil, nil
} }
@ -75,7 +77,7 @@ func creationTeamMembers(args []string, body []byte) (interface{}, error) {
// List given team // List given team
if tid, err := strconv.Atoi(string(args[0])); err != nil { if tid, err := strconv.Atoi(string(args[0])); err != nil {
return nil, err return nil, err
} else if team, err := GetTeam(tid); err != nil { } else if team, err := fic.GetTeam(tid); err != nil {
return nil, err return nil, err
} else { } else {
var member uploadedMember var member uploadedMember
@ -94,7 +96,7 @@ func creationTeamMembers(args []string, body []byte) (interface{}, error) {
return nil, err return nil, err
} }
if team, err := CreateTeam(""); err != nil { if team, err := fic.CreateTeam(""); err != nil {
return nil, err return nil, err
} else { } else {
for _, member := range members { for _, member := range members {
@ -114,7 +116,7 @@ func deletionTeam(args []string, body []byte) (interface{}, error) {
if len(args) == 1 { if len(args) == 1 {
if tid, err := strconv.Atoi(string(args[0])); err != nil { if tid, err := strconv.Atoi(string(args[0])); err != nil {
return nil, err return nil, err
} else if team, err := GetTeam(tid); err != nil { } else if team, err := fic.GetTeam(tid); err != nil {
return nil, err return nil, err
} else { } else {
return team.Delete() return team.Delete()

View File

@ -4,6 +4,8 @@ import (
"encoding/json" "encoding/json"
"errors" "errors"
"strconv" "strconv"
"srs.epita.fr/fic-server/libfic"
) )
var ApiThemesRouting = map[string]DispatchFunction{ var ApiThemesRouting = map[string]DispatchFunction{
@ -25,19 +27,19 @@ type uploadedExercice struct {
VideoURI string VideoURI string
} }
func getTheme(args []string) (Theme, error) { func getTheme(args []string) (fic.Theme, error) {
if tid, err := strconv.Atoi(string(args[0])); err != nil { if tid, err := strconv.Atoi(string(args[0])); err != nil {
return Theme{}, err return fic.Theme{}, err
} else { } else {
return GetTheme(tid) return fic.GetTheme(tid)
} }
} }
func getExercice(args []string) (Exercice, error) { func getExercice(args []string) (fic.Exercice, error) {
if theme, err := getTheme(args); err != nil { if theme, err := getTheme(args); err != nil {
return Exercice{}, err return fic.Exercice{}, err
} else if eid, err := strconv.Atoi(string(args[1])); err != nil { } else if eid, err := strconv.Atoi(string(args[1])); err != nil {
return Exercice{}, err return fic.Exercice{}, err
} else { } else {
return theme.GetExercice(eid) return theme.GetExercice(eid)
} }
@ -50,7 +52,7 @@ func listTheme(args []string, body []byte) (interface{}, error) {
return getTheme(args) return getTheme(args)
} else if len(args) == 0 { } else if len(args) == 0 {
// List all themes // List all themes
return GetThemes() return fic.GetThemes()
} else { } else {
return nil, nil return nil, nil
} }
@ -71,9 +73,9 @@ func creationTheme(args []string, body []byte) (interface{}, error) {
return nil, errors.New("Title not filled") return nil, errors.New("Title not filled")
} }
var depend *Exercice = nil var depend *fic.Exercice = nil
if ue.Depend != nil { if ue.Depend != nil {
if d, err := GetExercice(*ue.Depend); err != nil { if d, err := fic.GetExercice(*ue.Depend); err != nil {
return nil, err return nil, err
} else { } else {
depend = &d depend = &d
@ -93,7 +95,7 @@ func creationTheme(args []string, body []byte) (interface{}, error) {
return nil, errors.New("Theme's name not filled") return nil, errors.New("Theme's name not filled")
} }
return CreateTheme(ut.Name) return fic.CreateTheme(ut.Name)
} else { } else {
return nil, nil return nil, nil
} }

View File

@ -6,6 +6,8 @@ import (
"log" "log"
"net/http" "net/http"
"os" "os"
"srs.epita.fr/fic-server/libfic"
) )
var SubmissionDir string var SubmissionDir string
@ -19,15 +21,15 @@ func main() {
flag.Parse() flag.Parse()
log.Println("Opening database...") log.Println("Opening database...")
if err := DBInit(*dbfile); err != nil { if err := fic.DBInit(*dbfile); err != nil {
log.Fatal("Cannot open the database: ", err) log.Fatal("Cannot open the database: ", err)
os.Exit(1) os.Exit(1)
} }
defer DBClose() defer fic.DBClose()
log.Println("Creating database...") log.Println("Creating database...")
if err := DBCreate(); err != nil { if err := fic.DBCreate(); err != nil {
log.Fatal("Cannot create database: ", err) log.Fatal("Cannot create database: ", err)
os.Exit(1) os.Exit(1)

View File

@ -1,4 +1,4 @@
package main package fic
import ( import (
"database/sql" "database/sql"

View File

@ -1,4 +1,4 @@
package main package fic
import ( import (
"time" "time"

View File

@ -1,4 +1,4 @@
package main package fic
import ( import (
"crypto/sha1" "crypto/sha1"
@ -8,11 +8,11 @@ import (
) )
type EFile struct { type EFile struct {
Id int64 `json:"id"` Id int64 `json:"id"`
Path string `json:"path"` Path string `json:"path"`
IdExercice int64 `json:"idExercice"` IdExercice int64 `json:"idExercice"`
Name string `json:"name"` Name string `json:"name"`
Checksum []byte `json:"checksum"` Checksum []byte `json:"checksum"`
} }
func (e Exercice) GetFiles() ([]EFile, error) { func (e Exercice) GetFiles() ([]EFile, error) {

View File

@ -1,14 +1,14 @@
package main package fic
import ( import (
"crypto/sha512" "crypto/sha512"
) )
type Key struct { type Key struct {
Id int64 `json:"id"` Id int64 `json:"id"`
IdExercice int64 `json:"idExercice"` IdExercice int64 `json:"idExercice"`
Type string `json:"type"` Type string `json:"type"`
Value [64]byte `json:"value"` Value [64]byte `json:"value"`
} }
func (e Exercice) GetKeys() ([]Key, error) { func (e Exercice) GetKeys() ([]Key, error) {

View File

@ -1,4 +1,4 @@
package main package fic
import () import ()

View File

@ -1,4 +1,4 @@
package main package fic
import () import ()

View File

@ -1,4 +1,4 @@
package main package fic
import () import ()