feat: Implement the actual card creation
This commit is contained in:
parent
9093b1a0f8
commit
3ac2cd7319
|
@ -206,7 +206,10 @@ class CreateProductionCommand extends Command
|
|||
));
|
||||
$theChosenNote = $this->ankiService->getNote($noteIds[array_key_last($noteIds)]);
|
||||
|
||||
dd(SentenceListeningNote::fromNote($theChosenNote, $theChosenTerm));
|
||||
$newSlNote = SentenceListeningNote::fromNote($theChosenNote, $theChosenTerm);
|
||||
if (!$this->ankiService->addNote($newSlNote, 'production')) {
|
||||
throw new \Exception('Failed to add note!');
|
||||
}
|
||||
|
||||
printf(
|
||||
<<<FMNT
|
||||
|
|
|
@ -22,6 +22,11 @@ class Note
|
|||
{
|
||||
return $this->id;
|
||||
}
|
||||
public function setId(int $id): static
|
||||
{
|
||||
$this->id = $id;
|
||||
return $this;
|
||||
}
|
||||
public function getModel(): string
|
||||
{
|
||||
return $this->model;
|
||||
|
@ -36,6 +41,11 @@ class Note
|
|||
$this->fields = $fields;
|
||||
return $this;
|
||||
}
|
||||
/** @return list<string> */
|
||||
public function getTags(): array
|
||||
{
|
||||
return $this->tags;
|
||||
}
|
||||
|
||||
|
||||
// ------------------------------------------------------- Anki-related ---
|
||||
|
|
|
@ -32,6 +32,22 @@ class AnkiService
|
|||
return $result;
|
||||
}
|
||||
|
||||
/** The note's id is updated on success.
|
||||
* @return bool True on success
|
||||
*/
|
||||
public function addNote(Note &$note, string $deckName): bool
|
||||
{
|
||||
$note->setId($this->request('addNote', ['note' => [
|
||||
'deckName' => $deckName,
|
||||
'modelName' => $note->getModel(),
|
||||
'fields' => $note->getFields(),
|
||||
'options' => ['allowDuplicate' => false],
|
||||
'tags' => array_merge($note->getTags(), ['anker_made']),
|
||||
]]));
|
||||
|
||||
return $note->getId() !== null;
|
||||
}
|
||||
|
||||
public function findNotesIds(string $query): array
|
||||
{
|
||||
return $this->request('findNotes', ['query' => $query]);
|
||||
|
|
Loading…
Reference in New Issue