Skip to content
marcinmierzejewski1024 edited this page Mar 18, 2014 · 9 revisions

Wstępnie czego potrzebujemy z JSON'a

Pobieranie prezentacji

  • Temat prezentacji
  • Opis prezentacji
  • Nr sali
  • Godzina początkowa
  • Godzina końcowa
  • Imię i nazwisko prelegenta
  • Jakieś rozróżnienie czy to przerwa/koniec czy prezentacja

Pobieranie prelegentów

  • Imię i nazwisko prelegenta
  • Link do zdjęcia
  • Opis prelegenta

Pózniej jak dostane dostęp do ich strony będzie dotępny pod adresem: 2014.devcrowd.pl/mad-api/index.php

W przypadku zwykłych prezentacji json nie wymaga zbyt wielu objaśnień, prelegent jest częścią prezentacji co w sumie może prowadzić do nadmiarowości tych danych ale tak jest po prostu łatwiej i zgodnie z obecną strukturą strony, a prezentacji jest raptem kilkanaście i dotychczas nie zdarzyło się żeby ktoś prowadził więcej niż jedną.

W wypadku zdarzeń takich jak rejestracja/początek/koniec uzupełnione są tylko pola 'title','starts','ends'.

edit: W związku z tym że jedną prezentacje mogą prowadzić więcej niż jedna osoba zmieniłem pole 'prelegent' na 'speakers' a tam kryje się tablica tego samego co kryło się wcześniej pod nazwa 'prelegent' wygląda to tak(php dump):

Array
(
    [0] => Array
        (
            [title] => Prezentacja z 2 prowadzacymi
            [description] => Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"
            [room] => 126
            [starts] => 12:30
            [ends] => 15:00
            [speakers] => Array
                (
                    [0] => Array
                        (
                            [name] => Jan Nowak
                            [photoUrl] => http://2014.devcrowd.pl/wp-content/uploads/2013/01/duger-big.png
                            [description] => Blah blah blah
                        )

                    [1] => Array
                        (
                            [name] => Andrzej Kowalski
                            [photoUrl] => http://2014.devcrowd.pl/wp-content/uploads/2013/01/RJKty.jpg
                            [description] => bacon strips! bacon strips! bacon strips! bacon strips!
                        )

                )

        )

    [1] => Array
        (
            [title] => Zwykła prezentacja
            [description] => Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"
            [room] => 226
            [starts] => 12:30
            [ends] => 15:00
            [speakers] => Array
                (
                    [0] => Array
                        (
                            [name] => Adam Nowak
                            [photoUrl] => http://2014.devcrowd.pl/wp-content/uploads/2013/01/1bin.jpg
                            [description] => more bacon strips! 
                        )

                )

        )

)

API do ocen prezentacji i prelegenta:

żądania wysyłamy za pomocą metody post na adres http://2014.devcrowd.pl/mad-api/oceny.php w wypadku wysłania ocen jako parametr 'action' podajemy 'add_grades' i przykladowo wystawienie oceny 2 za prezentacje i 3 dla prowadzącego prezentacje 'Testowanie jest niepotrzebne'

'action' => 'add_grades' 'prelegent_grade' => 'Testowanie jest niepotrzebne' 'presentation_grade' => 2 'presentation_name' => 3 'email' => 'adres@email.pl'

W odpowiedzi dostajemy Jsona z nowo wyliczoną ocene dla prelegenta i prezentacji która wygląda mniej wiecej tak:

{"status":"success","errors":null,"prelegent_grade":2.666666666667,"presentation_grade":3.3333333333333}

W wypadku błedu natomiast wygląda to tak:

{"status":"error","prelegent_grade":0,"presentation_grade":0,"errors":["no email address","no presentation grade"]}

Mamy też możliwośc pobrania ocen bez oddawania głosu, wtedy post wygląda tak:

'action' => 'get_grades' 'presentation_name' => 'Testowanie jest niepotrzebne' I Json-owa odpowiedz: {"status":"success","errors":null,"prelegent_grade":2.666666666667,"presentation_grade":3.3333333333333}

W wypadku gdy prezentacja/prelegent nie ma żadnych oddanych głosów get_grades zwróci 0 jako oceny a nie błąd gdyż może to być pobranie ocen jeszcze zanim ktokolwiek zagłosuje.

A i link do potestowania jak to działa: http://2014.devcrowd.pl/mad-api/oceny.php?action=add_grades&prelegent_grade=5&presentation_grade=4&presentation_name=testowanie&email=marcinmierzejewski1020&debug=1

Clone this wiki locally