Tema
/
Interneto svetainių serverio dalies kūrimas GO
📖 Teorija

Baigiamoji užduotis — pasirašytojo atsisakymas nuo pradžios iki galo

Penkiolika pamokų, viena tikra įdiegta programa. SignFlow nuėjo nuo tuščio main iki dokumentų pasirašymo darbo srauto su autentifikacija, audito pėdsaku ir gyvu URL. Šis baigiamasis prašo tavęs išplėsti jį pačiam — įrodyti, kad modeliai tavo, ne tik perskaityti.

Užduotis: pasirašytojo atsisakymas. Dabar pasirašytojas gali pasirašyti. Pridėk galimybę atsisakyti — oficialiai atsisakyti pasirašyti, nurodant priežastį — ir padaryk atsisakytą dokumentą galutine būsena, lygiai kaip užbaigtą. Tai sąmoningai simetriška pasirašymui: jau turi tobulą šabloną vienu failu toliau. Jei gali pastatyti atsisakymą pritaikydamas tai, ko išmokė pasirašymas, įsisavinai taką.

Ką jis privalo daryti, nuo pradžios iki galo:

  1. Migracija. Pasirašytojas gali būti pending, signed arba dabar declined; dokumentas gali būti draft, sent, completed arba dabar declined. Išplėsk CHECK apribojimus. Pridėk decline_reason TEXT prie pasirašytojo (gali būti NULL — tik atsisakymai jį turi). (CHECK apribojimo negalima pakeisti vietoje; migracijoje numesk ir iš naujo pridėk — sintaksės radimas yra dalis užduoties.)

  2. Užklausa. DeclineSigner, apsaugota lygiai kaip SignSigner: UPDATE ... SET status='declined', decline_reason=$2 WHERE id=$1 AND status='pending' (:execrows). Vienkartinė, dėl tos pačios priežasties kaip pasirašymas — panaudotas žetonas atsisako nulio eilučių.

  3. Valdiklis, transakcijoje. Atsisakant: perversk pasirašytoją į declined, perversk dokumentą į declined (vienas atsisakymas baigia visą prašymą — nuspręsk ir apgink tą taisyklę) ir užrašyk audito įvykį (document.declined, actorSigner) toje pačioje transakcijoje. Dokumento būsenos perėjimas ir audito eilutė įsipareigoja kartu arba iš viso — L10–12 modelis tiksliai.

  4. Šablonas. Decline mygtukas ir priežasties laukas pasirašymo puslapyje, šalia Sign. Atsisakęs pasirašytojas mato savo atsisakytą būseną grįžęs (idempotentiška, kaip pasirašyta). Savininko sąrašas ir audito pėdsakas rodo atsisakymą ir jo priežastį.

  5. Apribojimai gerbiami. Žetonas vis dar yra visa autorizacija (jokio dokumento ID atsisakymo užklausoje). Audito eilutė be išorinio rakto ir išlieka. Parašo įspėjimas vis dar įrėmina, kas atsisakymas yra: įrodymas, kad šis asmuo atsisakė šių tikslių baitų, ir nieko daugiau.

Sukurk jį iš savo paties patikrinto kodo — ta pati disciplina, kurią naudojo visas takas: parašyk, sukompiliuok, paleisk, išbandyk. Kai pasirašytojas atsisako, stebėk, kaip dokumentas tampa declined, audito pėdsakas jį užrašo su priežastimi, o sąrašas tai atspindi. Tai baigiamasis: ne nauji konceptai, bet tavo rankos, pritaikančios kiekvieną iš jų funkcijai, kuri nebuvo paduota.